diff options
author | Bob Peterson <rpeterso@redhat.com> | 2023-04-21 15:07:10 -0400 |
---|---|---|
committer | Andreas Gruenbacher <agruenba@redhat.com> | 2023-04-25 11:07:16 +0200 |
commit | 644f6bf762fa903f64c59c2ec0f4d0d753527053 (patch) | |
tree | ebc14844a4035fa9f949903e3f1473e42293ebf3 /fs/gfs2 | |
parent | b97e583caa25abf95695cd06d7f9512b484c6c01 (diff) | |
download | lwn-644f6bf762fa903f64c59c2ec0f4d0d753527053.tar.gz lwn-644f6bf762fa903f64c59c2ec0f4d0d753527053.zip |
gfs2: gfs2_ail_empty_gl no log flush on error
Before this patch, function gfs2_ail_empty_gl called gfs2_log_flush even
in cases where it encountered an error. It should probably skip the log
flush and leave the file system in an inconsistent state, letting a
subsequent withdraw force the journal to be replayed to reestablish
metadata consistency.
Signed-off-by: Bob Peterson <rpeterso@redhat.com>
Signed-off-by: Andreas Gruenbacher <agruenba@redhat.com>
Diffstat (limited to 'fs/gfs2')
-rw-r--r-- | fs/gfs2/glops.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/fs/gfs2/glops.c b/fs/gfs2/glops.c index caef70334af3..01d433ed6ce7 100644 --- a/fs/gfs2/glops.c +++ b/fs/gfs2/glops.c @@ -132,8 +132,9 @@ static int gfs2_ail_empty_gl(struct gfs2_glock *gl) gfs2_trans_end(sdp); flush: - gfs2_log_flush(sdp, NULL, GFS2_LOG_HEAD_FLUSH_NORMAL | - GFS2_LFC_AIL_EMPTY_GL); + if (!ret) + gfs2_log_flush(sdp, NULL, GFS2_LOG_HEAD_FLUSH_NORMAL | + GFS2_LFC_AIL_EMPTY_GL); return ret; } |