summaryrefslogtreecommitdiffstats
path: root/include/linux/nfs_fs.h
diff options
context:
space:
mode:
authorTrond Myklebust2013-05-29 19:34:46 +0200
committerTrond Myklebust2013-06-06 22:24:44 +0200
commitc45ffdd26961302ec5eeac7311553d6f1e348e9c (patch)
tree2e7afeafe15c0a6c3886cd16a4cc601337ee3ea5 /include/linux/nfs_fs.h
parentNFSv4: Move dentry instantiation into the NFSv4-specific atomic open code (diff)
downloadkernel-qcow2-linux-c45ffdd26961302ec5eeac7311553d6f1e348e9c.tar.gz
kernel-qcow2-linux-c45ffdd26961302ec5eeac7311553d6f1e348e9c.tar.xz
kernel-qcow2-linux-c45ffdd26961302ec5eeac7311553d6f1e348e9c.zip
NFSv4: Close another NFSv4 recovery race
State recovery currently relies on being able to find a valid nfs_open_context in the inode->open_files list. We therefore need to put the nfs_open_context on the list while we're still protected by the sp->so_reclaim_seqcount in order to avoid reboot races. Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
Diffstat (limited to 'include/linux/nfs_fs.h')
-rw-r--r--include/linux/nfs_fs.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/include/linux/nfs_fs.h b/include/linux/nfs_fs.h
index fc01d5cb4cf1..1384ed92cad6 100644
--- a/include/linux/nfs_fs.h
+++ b/include/linux/nfs_fs.h
@@ -356,6 +356,7 @@ extern struct nfs_open_context *get_nfs_open_context(struct nfs_open_context *ct
extern void put_nfs_open_context(struct nfs_open_context *ctx);
extern struct nfs_open_context *nfs_find_open_context(struct inode *inode, struct rpc_cred *cred, fmode_t mode);
extern struct nfs_open_context *alloc_nfs_open_context(struct dentry *dentry, fmode_t f_mode);
+extern void nfs_inode_attach_open_context(struct nfs_open_context *ctx);
extern void nfs_file_set_open_context(struct file *filp, struct nfs_open_context *ctx);
extern struct nfs_lock_context *nfs_get_lock_context(struct nfs_open_context *ctx);
extern void nfs_put_lock_context(struct nfs_lock_context *l_ctx);