]> git.ipfire.org Git - thirdparty/linux.git/blobdiff - fs/nfsd/nfsctl.c
nfsd: use i_wrlock instead of rcu for nfsdfs i_private
[thirdparty/linux.git] / fs / nfsd / nfsctl.c
index 928a0b2c05dc4284eaaa1e2f735458f57cec4e18..b14f825c62fecaa09dfb622a6f0d04cdf4e887e2 100644 (file)
@@ -1215,11 +1215,9 @@ static void clear_ncl(struct inode *inode)
        struct nfsdfs_client *ncl = inode->i_private;
 
        inode->i_private = NULL;
-       synchronize_rcu();
        kref_put(&ncl->cl_ref, ncl->cl_release);
 }
 
-
 static struct nfsdfs_client *__get_nfsdfs_client(struct inode *inode)
 {
        struct nfsdfs_client *nc = inode->i_private;
@@ -1233,9 +1231,9 @@ struct nfsdfs_client *get_nfsdfs_client(struct inode *inode)
 {
        struct nfsdfs_client *nc;
 
-       rcu_read_lock();
+       inode_lock_shared(inode);
        nc = __get_nfsdfs_client(inode);
-       rcu_read_unlock();
+       inode_unlock_shared(inode);
        return nc;
 }
 /* from __rpc_unlink */