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>
This commit is contained in:
@@ -1958,9 +1958,7 @@ static void init_once(void *foo)
|
||||
nfsi->nrequests = 0;
|
||||
nfsi->commit_info.ncommit = 0;
|
||||
atomic_set(&nfsi->commit_info.rpcs_out, 0);
|
||||
atomic_set(&nfsi->silly_count, 1);
|
||||
INIT_HLIST_HEAD(&nfsi->silly_list);
|
||||
init_waitqueue_head(&nfsi->waitqueue);
|
||||
init_rwsem(&nfsi->rmdir_sem);
|
||||
nfs4_init_once(nfsi);
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user