summaryrefslogtreecommitdiff
path: root/fs/nfs/nfstrace.h
diff options
context:
space:
mode:
authorAl Viro <viro@zeniv.linux.org.uk>2016-04-29 06:56:31 +0300
committerAl Viro <viro@zeniv.linux.org.uk>2016-05-09 18:39:45 +0300
commit884be175351e73c515303118150f195dd611787c (patch)
treeba85a80a6422df631b18af344132c6fcb67f1594 /fs/nfs/nfstrace.h
parent9ac3d3e8460e3fa6f3a9a39c2049904005016db6 (diff)
downloadlinux-884be175351e73c515303118150f195dd611787c.tar.xz
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 'fs/nfs/nfstrace.h')
-rw-r--r--fs/nfs/nfstrace.h2
1 files changed, 1 insertions, 1 deletions
diff --git a/fs/nfs/nfstrace.h b/fs/nfs/nfstrace.h
index 9f80a086b612..0b9e5cc9a747 100644
--- a/fs/nfs/nfstrace.h
+++ b/fs/nfs/nfstrace.h
@@ -702,7 +702,7 @@ TRACE_EVENT(nfs_sillyrename_unlink,
),
TP_fast_assign(
- struct inode *dir = data->dir;
+ struct inode *dir = d_inode(data->dentry->d_parent);
size_t len = data->args.name.len;
__entry->dev = dir->i_sb->s_dev;
__entry->dir = NFS_FILEID(dir);