]> git.baikalelectronics.ru Git - kernel.git/commit
gfs2: Dequeue waiters when withdrawn
authorBob Peterson <rpeterso@redhat.com>
Thu, 18 Aug 2022 18:32:37 +0000 (13:32 -0500)
committerAndreas Gruenbacher <agruenba@redhat.com>
Thu, 25 Aug 2022 15:11:14 +0000 (17:11 +0200)
commitda7fb5d2a8786c6286714aee5d1c88b75f50c3a7
tree42169cec2192266f57afe4c1228a3d3c96f471d2
parent8ad384074676f87bd0cb3d66cc25d3985f2677c6
gfs2: Dequeue waiters when withdrawn

When a withdraw occurs, ordinary (not system) glocks may not be granted
anymore. Later, when the file system is unmounted, gfs2_gl_hash_clear()
tries to clear out all the glocks, but these un-grantable pending
waiters prevent some glocks from being freed. So the unmount hangs, at
least for its ten-minute timeout period.

This patch takes measures to remove any pending waiters from
the glocks that will never be granted. This allows the unmount to
proceed in a reasonable period of time.

Signed-off-by: Bob Peterson <rpeterso@redhat.com>
Signed-off-by: Andreas Gruenbacher <agruenba@redhat.com>
fs/gfs2/glock.c
fs/gfs2/glock.h
fs/gfs2/util.c