diff options
author | Andreas Gruenbacher <agruenba@redhat.com> | 2025-07-08 21:21:27 +0200 |
---|---|---|
committer | Andreas Gruenbacher <agruenba@redhat.com> | 2025-07-09 20:04:14 +0200 |
commit | 75bb2ddea9640b663e4b2eaa06e15196f6f11a95 (patch) | |
tree | a8b56cf236cfbf4d846e0b58164c7d6bf519b0e0 | |
parent | 2c6e2cb9e7228181e93ae8957f403affd8abf0e2 (diff) |
gfs2: Minor do_xmote cancelation fix
Commit 6cb3b1c2df87 changed how finish_xmote() clears the GLF_LOCK flag,
but it failed to adjust the equivalent code in do_xmote(). Fix that.
Fixes: 6cb3b1c2df87 ("gfs2: Fix additional unlikely request cancelation race")
Signed-off-by: Andreas Gruenbacher <agruenba@redhat.com>
-rw-r--r-- | fs/gfs2/glock.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/fs/gfs2/glock.c b/fs/gfs2/glock.c index ba25b884169e..ea96113edbe3 100644 --- a/fs/gfs2/glock.c +++ b/fs/gfs2/glock.c @@ -802,7 +802,8 @@ skip_inval: * We skip telling dlm to do the locking, so we won't get a * reply that would otherwise clear GLF_LOCK. So we clear it here. */ - clear_bit(GLF_LOCK, &gl->gl_flags); + if (!test_bit(GLF_CANCELING, &gl->gl_flags)) + clear_bit(GLF_LOCK, &gl->gl_flags); clear_bit(GLF_DEMOTE_IN_PROGRESS, &gl->gl_flags); gfs2_glock_queue_work(gl, GL_GLOCK_DFT_HOLD); return; |