]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
gfs2: Mark flock glock holders as GL_NOPID
authorAndreas Gruenbacher <agruenba@redhat.com>
Wed, 6 Apr 2022 10:51:27 +0000 (12:51 +0200)
committerAndreas Gruenbacher <agruenba@redhat.com>
Wed, 29 Jun 2022 11:07:54 +0000 (13:07 +0200)
Add the GL_NOPID flag for flock glock holders.  Clean up the flag
setting code in do_flock.

Signed-off-by: Andreas Gruenbacher <agruenba@redhat.com>
fs/gfs2/file.c

index 25f4080bc973a5cf0d1102cf9eb2ba8f47a35cec..1383f9598011d03cffb3b2581e84785c9403d0b2 100644 (file)
@@ -1472,7 +1472,9 @@ static int do_flock(struct file *file, int cmd, struct file_lock *fl)
        int sleeptime;
 
        state = (fl->fl_type == F_WRLCK) ? LM_ST_EXCLUSIVE : LM_ST_SHARED;
-       flags = (IS_SETLKW(cmd) ? 0 : LM_FLAG_TRY_1CB) | GL_EXACT;
+       flags = GL_EXACT | GL_NOPID;
+       if (!IS_SETLKW(cmd))
+               flags |= LM_FLAG_TRY_1CB;
 
        mutex_lock(&fp->f_fl_mutex);
 
@@ -1500,7 +1502,8 @@ static int do_flock(struct file *file, int cmd, struct file_lock *fl)
                error = gfs2_glock_nq(fl_gh);
                if (error != GLR_TRYFAILED)
                        break;
-               fl_gh->gh_flags = LM_FLAG_TRY | GL_EXACT;
+               fl_gh->gh_flags &= ~LM_FLAG_TRY_1CB;
+               fl_gh->gh_flags |= LM_FLAG_TRY;
                msleep(sleeptime);
        }
        if (error) {