diff options
author | Andreas Gruenbacher <agruenba@redhat.com> | 2024-01-26 13:49:44 +0300 |
---|---|---|
committer | Andreas Gruenbacher <agruenba@redhat.com> | 2024-04-09 19:35:57 +0300 |
commit | b01189333ee91c1ae6cd96dfd1e3a3c2e69202f0 (patch) | |
tree | 01a97b17765fbd8ce663172b6113a56336c2dade /fs/gfs2/glops.c | |
parent | 3592bfaf746a4d0fefe6fe11527aa335073674c1 (diff) | |
download | linux-b01189333ee91c1ae6cd96dfd1e3a3c2e69202f0.tar.xz |
gfs2: Don't forget to complete delayed withdraw
Commit fffe9bee14b0 ("gfs2: Delay withdraw from atomic context")
switched from gfs2_withdraw() to gfs2_withdraw_delayed() in
gfs2_ail_error(), but failed to then check if a delayed withdraw had
occurred. Fix that by adding the missing check in __gfs2_ail_flush(),
where the spin locks are already dropped and a withdraw is possible.
Fixes: fffe9bee14b0 ("gfs2: Delay withdraw from atomic context")
Signed-off-by: Andreas Gruenbacher <agruenba@redhat.com>
Diffstat (limited to 'fs/gfs2/glops.c')
-rw-r--r-- | fs/gfs2/glops.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/fs/gfs2/glops.c b/fs/gfs2/glops.c index ae8d4731907d..68677fb69a73 100644 --- a/fs/gfs2/glops.c +++ b/fs/gfs2/glops.c @@ -82,6 +82,9 @@ static void __gfs2_ail_flush(struct gfs2_glock *gl, bool fsync, GLOCK_BUG_ON(gl, !fsync && atomic_read(&gl->gl_ail_count)); spin_unlock(&sdp->sd_ail_lock); gfs2_log_unlock(sdp); + + if (gfs2_withdrawing(sdp)) + gfs2_withdraw(sdp); } |