summaryrefslogtreecommitdiffstats
path: root/include/linux/nfs_xdr.h
diff options
context:
space:
mode:
authorAl Viro <viro@zeniv.linux.org.uk>2016-04-28 23:56:31 -0400
committerAl Viro <viro@zeniv.linux.org.uk>2016-05-09 11:39:45 -0400
commit884be175351e73c515303118150f195dd611787c (patch)
treeba85a80a6422df631b18af344132c6fcb67f1594 /include/linux/nfs_xdr.h
parent9ac3d3e8460e3fa6f3a9a39c2049904005016db6 (diff)
downloadop-kernel-dev-884be175351e73c515303118150f195dd611787c.zip
op-kernel-dev-884be175351e73c515303118150f195dd611787c.tar.gz
nfs: per-name sillyunlink exclusion
use d_alloc_parallel() for sillyunlink/lookup exclusion and explicit rwsem (nfs_rmdir() being a writer and nfs_call_unlink() - a reader) for rmdir/sillyunlink one. That ought to make lookup/readdir/!O_CREAT atomic_open really parallel on NFS. Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'include/linux/nfs_xdr.h')
-rw-r--r--include/linux/nfs_xdr.h4
1 files changed, 2 insertions, 2 deletions
diff --git a/include/linux/nfs_xdr.h b/include/linux/nfs_xdr.h
index d320906..ee8491d 100644
--- a/include/linux/nfs_xdr.h
+++ b/include/linux/nfs_xdr.h
@@ -1468,10 +1468,10 @@ struct nfs_pgio_completion_ops {
};
struct nfs_unlinkdata {
- struct hlist_node list;
struct nfs_removeargs args;
struct nfs_removeres res;
- struct inode *dir;
+ struct dentry *dentry;
+ wait_queue_head_t wq;
struct rpc_cred *cred;
struct nfs_fattr dir_attr;
long timeout;
OpenPOWER on IntegriCloud