Skip to content

Commit 3063047

Browse files
author
Andreas Gruenbacher
committed
gfs2: glock cancelation flag fix
JIRA: https://issues.redhat.com/browse/RHEL-135362 Upstream Status: https://git.kernel.org/pub/scm/linux/kernel/git/gfs2/linux-gfs2.git/ retry-rename When an asynchronous glock holder is dequeued that hasn't been granted yet (HIF_HOLDER not set) and no dlm operation is in progress on behalf of that holder (GLF_LOCK not set), the dequeuing takes place in __gfs2_glock_dq(). There, we are not clearing the HIF_WAIT flag. This prevents the same holder from being enqueued later (gfs2_glock_nq()) without first reinitializing it (gfs2_holder_reinit()). Fix that by always clearing the HIF_WAIT flag in __gfs2_glock_dq(). Signed-off-by: Andreas Gruenbacher <agruenba@redhat.com> (cherry picked from commit de958017e4fed4f3f5aa115128da73f8d63ac975)
1 parent 88031a6 commit 3063047

File tree

1 file changed

+1
-0
lines changed

1 file changed

+1
-0
lines changed

fs/gfs2/glock.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1611,6 +1611,7 @@ static void __gfs2_glock_dq(struct gfs2_holder *gh)
16111611
list_del_init(&gh->gh_list);
16121612
clear_bit(HIF_HOLDER, &gh->gh_iflags);
16131613
trace_gfs2_glock_queue(gh, 0);
1614+
clear_bit(HIF_WAIT, &gh->gh_iflags);
16141615

16151616
/*
16161617
* If there hasn't been a demote request we are done.

0 commit comments

Comments
 (0)