diff --git a/[refs] b/[refs] index a29179255598..42e5cd011e66 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 70b9ecbdb9c5fdc731f8780bffd45d9519020c4a +refs/heads/master: 566dd6064e89b15ff2dec666a421bebf0f98f26c diff --git a/trunk/fs/nfs/direct.c b/trunk/fs/nfs/direct.c index fd7ac5e841c1..10ae377e68ff 100644 --- a/trunk/fs/nfs/direct.c +++ b/trunk/fs/nfs/direct.c @@ -122,9 +122,10 @@ nfs_free_user_pages(struct page **pages, int npages, int do_dirty) { int i; for (i = 0; i < npages; i++) { - if (do_dirty) - set_page_dirty_lock(pages[i]); - page_cache_release(pages[i]); + struct page *page = pages[i]; + if (do_dirty && !PageCompound(page)) + set_page_dirty_lock(page); + page_cache_release(page); } kfree(pages); }