diff options
author | Andreas Gruenbacher | 2022-04-06 12:51:27 +0200 |
---|---|---|
committer | Andreas Gruenbacher | 2022-06-29 13:07:54 +0200 |
commit | b582d5f05ddbd61bb72896b31ff83d7f0b0862f5 (patch) | |
tree | 5d78497611c18f7478c56ca85cd5353be23967b1 /fs | |
parent | cbe6d2576e2cf7571e781439728ad31bdfd9dfcb (diff) |
gfs2: Mark flock glock holders as GL_NOPID
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>
Diffstat (limited to 'fs')
-rw-r--r-- | fs/gfs2/file.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/fs/gfs2/file.c b/fs/gfs2/file.c index 25f4080bc973..1383f9598011 100644 --- a/fs/gfs2/file.c +++ b/fs/gfs2/file.c @@ -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) { |