summaryrefslogtreecommitdiff
path: root/include/linux/nfs_page.h
diff options
context:
space:
mode:
authorTrond Myklebust <Trond.Myklebust@netapp.com>2011-03-25 14:15:11 -0400
committerTrond Myklebust <Trond.Myklebust@netapp.com>2011-03-27 17:48:07 +0200
commit4d65c520fb4abed970069d18c119cfe85624f46d (patch)
tree74671eb263380317f1e4a958a6a7f73749e98eec /include/linux/nfs_page.h
parent16c29dafcc86024048f1dbb8349d31cb22c7c55a (diff)
downloadlwn-4d65c520fb4abed970069d18c119cfe85624f46d.tar.gz
lwn-4d65c520fb4abed970069d18c119cfe85624f46d.zip
NFS: Fix a hang in the writeback path
Now that the inode scalability patches have been merged, it is no longer safe to call igrab() under the inode->i_lock. Now that we no longer call nfs_clear_request() until the nfs_page is being freed, we know that we are always holding a reference to the nfs_open_context, which again holds a reference to the path, and so the inode cannot be freed until the last nfs_page has been removed from the radix tree and freed. We can therefore skip the igrab()/iput() altogether. Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
Diffstat (limited to 'include/linux/nfs_page.h')
-rw-r--r--include/linux/nfs_page.h1
1 files changed, 0 insertions, 1 deletions
diff --git a/include/linux/nfs_page.h b/include/linux/nfs_page.h
index 8023e4e25133..91af2e49fa3a 100644
--- a/include/linux/nfs_page.h
+++ b/include/linux/nfs_page.h
@@ -78,7 +78,6 @@ extern struct nfs_page *nfs_create_request(struct nfs_open_context *ctx,
struct page *page,
unsigned int offset,
unsigned int count);
-extern void nfs_clear_request(struct nfs_page *req);
extern void nfs_release_request(struct nfs_page *req);