2012-10-03 23:08:47

by Fred Isaman

[permalink] [raw]
Subject: [PATCH 1/1] NFS: dont revalidate the inode when using local locks

This drastically improves performance when using lock-heavy workloads that are amenable to using local locks.

Signed-off-by: Fred Isaman <[email protected]>
---
fs/nfs/file.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/fs/nfs/file.c b/fs/nfs/file.c
index a6708e6..fd0155f 100644
--- a/fs/nfs/file.c
+++ b/fs/nfs/file.c
@@ -765,7 +765,7 @@ do_setlk(struct file *filp, int cmd, struct file_lock *fl, int is_local)
* This makes locking act as a cache coherency point.
*/
nfs_sync_mapping(filp->f_mapping);
- if (!nfs_have_delegation(inode, FMODE_READ)) {
+ if ((!is_local) && !nfs_have_delegation(inode, FMODE_READ)) {
if (is_time_granular(&NFS_SERVER(inode)->time_delta))
__nfs_revalidate_inode(NFS_SERVER(inode), inode);
else
--
1.7.1