gfs2: Avoid dequeuing GL_ASYNC glock holders twice
authorAndreas Gruenbacher <agruenba@redhat.com>
Sun, 4 Dec 2022 12:02:39 +0000 (13:02 +0100)
committerAndreas Gruenbacher <agruenba@redhat.com>
Tue, 6 Dec 2022 15:06:31 +0000 (16:06 +0100)
commit97236ad5a68c6b7603cea2ad01c588887e5cb961
tree00fd117866ac8df5359bd118f371d6fd1a8c5347
parent4ad02083a092b497f35804de03eaa62cf81fada6
gfs2: Avoid dequeuing GL_ASYNC glock holders twice

When a locking request fails, the associated glock holder is
automatically dequeued from the list of active and waiting holders.  For
GL_ASYNC locking requests, this will obviously happen asynchronously
and it can race with attempts to cancel that locking request via
gfs2_glock_dq().  Therefore, don't forget to check if a locking request
has already been dequeued in gfs2_glock_dq().

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