summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndreas Gruenbacher <agruenba@redhat.com>2025-08-21 22:46:39 +0200
committerAndreas Gruenbacher <agruenba@redhat.com>2025-11-26 23:52:28 +0000
commit3a88edc1657da9a847041ea994e66e26db9578d2 (patch)
tree53b803efa49f97a332f6aa2970148a94b1842793
parentbbbf1529ea9b85072e58c164a9a5d82554ffa941 (diff)
gfs2: Withdraw immediately in gfs2_trans_add_meta
We can now withdraw while the log is locked. Signed-off-by: Andreas Gruenbacher <agruenba@redhat.com>
-rw-r--r--fs/gfs2/trans.c5
1 files changed, 1 insertions, 4 deletions
diff --git a/fs/gfs2/trans.c b/fs/gfs2/trans.c
index f0cfdb5c5f2d..1cce8e0f85da 100644
--- a/fs/gfs2/trans.c
+++ b/fs/gfs2/trans.c
@@ -255,7 +255,6 @@ void gfs2_trans_add_meta(struct gfs2_glock *gl, struct buffer_head *bh)
struct gfs2_bufdata *bd;
struct gfs2_meta_header *mh;
struct gfs2_trans *tr = current->journal_info;
- bool withdraw = false;
lock_buffer(bh);
if (buffer_pinned(bh)) {
@@ -296,7 +295,7 @@ void gfs2_trans_add_meta(struct gfs2_glock *gl, struct buffer_head *bh)
}
if (unlikely(sb->s_writers.frozen == SB_FREEZE_COMPLETE)) {
fs_info(sdp, "GFS2:adding buf while frozen\n");
- withdraw = true;
+ gfs2_withdraw(sdp);
goto out_unlock;
}
gfs2_pin(sdp, bd->bd_bh);
@@ -306,8 +305,6 @@ void gfs2_trans_add_meta(struct gfs2_glock *gl, struct buffer_head *bh)
tr->tr_num_buf_new++;
out_unlock:
gfs2_log_unlock(sdp);
- if (withdraw)
- gfs2_assert_withdraw(sdp, 0);
out:
unlock_buffer(bh);
}