summaryrefslogtreecommitdiffstats
path: root/fs/nfs/inode.c
diff options
context:
space:
mode:
authorTrond Myklebust <trond.myklebust@primarydata.com>2017-08-01 11:53:49 -0400
committerTrond Myklebust <trond.myklebust@primarydata.com>2017-08-15 11:54:47 -0400
commite824f99adaaf1ed0e03eac8574599af6d992163d (patch)
treec5d2716566d21f023bd278dae6a92a06cbe72816 /fs/nfs/inode.c
parentb30d2f04c35d539bf8003b3e014c389abefc249b (diff)
downloadlinux-stable-e824f99adaaf1ed0e03eac8574599af6d992163d.tar.gz
linux-stable-e824f99adaaf1ed0e03eac8574599af6d992163d.tar.bz2
linux-stable-e824f99adaaf1ed0e03eac8574599af6d992163d.zip
NFSv4: Use a mutex to protect the per-inode commit lists
The commit lists can get very large, so using the inode->i_lock can end up affecting general metadata performance. Signed-off-by: Trond Myklebust <trond.myklebust@primarydata.com>
Diffstat (limited to 'fs/nfs/inode.c')
-rw-r--r--fs/nfs/inode.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/fs/nfs/inode.c b/fs/nfs/inode.c
index 109279d6d91b..34d9ebbc0dfd 100644
--- a/fs/nfs/inode.c
+++ b/fs/nfs/inode.c
@@ -2016,6 +2016,7 @@ static void init_once(void *foo)
nfsi->commit_info.ncommit = 0;
atomic_set(&nfsi->commit_info.rpcs_out, 0);
init_rwsem(&nfsi->rmdir_sem);
+ mutex_init(&nfsi->commit_mutex);
nfs4_init_once(nfsi);
}