]> www.pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - fs/nfs/file.c
NFS: Fix a potential deadlock in nfs_release_page
[linux-2.6-omap-h63xx.git] / fs / nfs / file.c
index cc2b874ad5a4c38f4c63c0fe4b24028bbec6b030..48e892880d5b9a918abfad7fe8cae23ec2f87fdd 100644 (file)
@@ -312,7 +312,13 @@ static void nfs_invalidate_page(struct page *page, unsigned long offset)
 
 static int nfs_release_page(struct page *page, gfp_t gfp)
 {
-       return !nfs_wb_page(page->mapping->host, page);
+       if (gfp & __GFP_FS)
+               return !nfs_wb_page(page->mapping->host, page);
+       else
+               /*
+                * Avoid deadlock on nfs_wait_on_request().
+                */
+               return 0;
 }
 
 const struct address_space_operations nfs_file_aops = {