From: Andreas Gruenbacher Date: Fri, 26 Jan 2024 10:49:44 +0000 (+0100) Subject: gfs2: Don't forget to complete delayed withdraw X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=b01189333ee91c1ae6cd96dfd1e3a3c2e69202f0;p=linux.git 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 --- diff --git a/fs/gfs2/glops.c b/fs/gfs2/glops.c index ae8d4731907d1..68677fb69a73f 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); }