gfs2: Don't wait for journal flush in clean_journal
authorAndreas Gruenbacher <agruenba@redhat.com>
Fri, 11 Dec 2020 00:36:25 +0000 (01:36 +0100)
committerAndreas Gruenbacher <agruenba@redhat.com>
Wed, 3 Feb 2021 17:37:24 +0000 (18:37 +0100)
Commit 588bff95c94e added gfs2_write_log_header() and started using it in
clean_journal(), with an additional call to log_flush_wait() at the end of
gfs2_write_log_header() which is unnecessary for clean_journal().  Move
that call out of gfs2_write_log_header() to restore the previous behavior.

Signed-off-by: Andreas Gruenbacher <agruenba@redhat.com>
fs/gfs2/log.c

index e7183c8..cff9588 100644 (file)
@@ -757,7 +757,7 @@ void gfs2_write_log_header(struct gfs2_sbd *sdp, struct gfs2_jdesc *jd,
        u64 dblock;
 
        if (gfs2_withdrawn(sdp))
-               goto out;
+               return;
 
        page = mempool_alloc(gfs2_page_pool, GFP_NOIO);
        lh = page_address(page);
@@ -812,8 +812,6 @@ void gfs2_write_log_header(struct gfs2_sbd *sdp, struct gfs2_jdesc *jd,
 
        gfs2_log_write(sdp, page, sb->s_blocksize, 0, dblock);
        gfs2_log_submit_bio(&sdp->sd_log_bio, REQ_OP_WRITE | op_flags);
-out:
-       log_flush_wait(sdp);
 }
 
 /**
@@ -842,6 +840,7 @@ static void log_write_header(struct gfs2_sbd *sdp, u32 flags)
        gfs2_write_log_header(sdp, sdp->sd_jdesc, sdp->sd_log_sequence++, tail,
                              sdp->sd_log_flush_head, flags, op_flags);
        gfs2_log_incr_head(sdp);
+       log_flush_wait(sdp);
 
        if (sdp->sd_log_tail != tail)
                log_pull_tail(sdp, tail);