]> git.baikalelectronics.ru Git - kernel.git/commit
gfs2: Make sure we don't miss any delayed withdraws
authorAndreas Gruenbacher <agruenba@redhat.com>
Fri, 28 Aug 2020 21:44:36 +0000 (23:44 +0200)
committerAndreas Gruenbacher <agruenba@redhat.com>
Wed, 14 Oct 2020 21:54:41 +0000 (23:54 +0200)
commit3fdf534984f2790267a318cc47c0c819b666417f
treee11c8f0b78d91bac0feeb6667005e3c392e174a8
parent84f4a9652c8a9177dded2c36fe1349fabea25124
gfs2: Make sure we don't miss any delayed withdraws

Commit 4d03f8066484 changes gfs2_log_flush to not withdraw the
filesystem while holding the log flush lock, but it fails to check if
the filesystem needs to be withdrawn once the log flush lock has been
released.  Likewise, commit 9c95dbbd0e2e depends on gfs2_log_flush to
trigger for delayed withdraws.  Add that and clean up the code flow
somewhat.

In gfs2_put_super, add a check for delayed withdraws that have been
missed to prevent these kinds of bugs in the future.

Fixes: 4d03f8066484 ("gfs2: flesh out delayed withdraw for gfs2_log_flush")
Fixes: 9c95dbbd0e2e ("gfs2: Prepare to withdraw as soon as an IO error occurs in log write")
Cc: stable@vger.kernel.org # v5.7+: d00093ec0528e: gfs2: add some much needed cleanup for log flushes that fail
Signed-off-by: Andreas Gruenbacher <agruenba@redhat.com>
fs/gfs2/log.c
fs/gfs2/super.c
fs/gfs2/util.h