GFS2: Allow caching of glocks for flock
authorBob Peterson <rpeterso@redhat.com>
Thu, 26 Jun 2014 14:47:48 +0000 (10:47 -0400)
committerSteven Whitehouse <swhiteho@redhat.com>
Fri, 18 Jul 2014 10:14:12 +0000 (11:14 +0100)
This patch removes the GLF_NOCACHE flag from the glocks associated with
flocks. There should be no good reason not to cache glocks for flocks:
they only force the glock to be demoted before they can be reacquired,
which can slow down performance and even cause glock hangs, especially
in cases where the flocks are held in Shared (SH) mode.

Signed-off-by: Bob Peterson <rpeterso@redhat.com>
Signed-off-by: Steven Whitehouse <swhiteho@redhat.com>
fs/gfs2/file.c

index 491e8e023598cb398ba39d94b9ab1f9d019c4074..26b3f952e6b19cccd2e0333f45498c5531a99c62 100644 (file)
@@ -981,7 +981,7 @@ static int do_flock(struct file *file, int cmd, struct file_lock *fl)
        int error = 0;
 
        state = (fl->fl_type == F_WRLCK) ? LM_ST_EXCLUSIVE : LM_ST_SHARED;
-       flags = (IS_SETLKW(cmd) ? 0 : LM_FLAG_TRY) | GL_EXACT | GL_NOCACHE;
+       flags = (IS_SETLKW(cmd) ? 0 : LM_FLAG_TRY) | GL_EXACT;
 
        mutex_lock(&fp->f_fl_mutex);