diff options
author | Al Viro <viro@zeniv.linux.org.uk> | 2016-04-29 06:56:31 +0300 |
---|---|---|
committer | Al Viro <viro@zeniv.linux.org.uk> | 2016-05-09 18:39:45 +0300 |
commit | 884be175351e73c515303118150f195dd611787c (patch) | |
tree | ba85a80a6422df631b18af344132c6fcb67f1594 /fs/nfs/nfstrace.h | |
parent | 9ac3d3e8460e3fa6f3a9a39c2049904005016db6 (diff) | |
download | linux-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.h | 2 |
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); |