jbd2: replace journal state flag by checking errseq
authorZhihao Cheng <chengzhihao1@huawei.com>
Wed, 13 Dec 2023 01:32:21 +0000 (09:32 +0800)
committerTheodore Ts'o <tytso@mit.edu>
Fri, 5 Jan 2024 04:42:21 +0000 (23:42 -0500)
Now JBD2 detects metadata writeback error of fs dev according to errseq.
Replace journal state flag by checking errseq.

Signed-off-by: Zhihao Cheng <chengzhihao1@huawei.com>
Suggested-by: Jan Kara <jack@suse.cz>
Reviewed-by: Jan Kara <jack@suse.cz>
Link: https://lore.kernel.org/r/20231213013224.2100050-3-chengzhihao1@huawei.com
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
fs/jbd2/journal.c

index 559938a82379a09a57ba19e38e09e588a227ffc1..b6c114c11b97877e7f86a9366ef63bad0d81bf01 100644 (file)
@@ -1862,7 +1862,7 @@ int jbd2_journal_update_sb_log_tail(journal_t *journal, tid_t tail_tid,
 
        if (is_journal_aborted(journal))
                return -EIO;
-       if (test_bit(JBD2_CHECKPOINT_IO_ERROR, &journal->j_atomic_flags)) {
+       if (jbd2_check_fs_dev_write_error(journal)) {
                jbd2_journal_abort(journal, -EIO);
                return -EIO;
        }
@@ -2160,12 +2160,12 @@ int jbd2_journal_destroy(journal_t *journal)
 
        /*
         * OK, all checkpoint transactions have been checked, now check the
-        * write out io error flag and abort the journal if some buffer failed
-        * to write back to the original location, otherwise the filesystem
-        * may become inconsistent.
+        * writeback errseq of fs dev and abort the journal if some buffer
+        * failed to write back to the original location, otherwise the
+        * filesystem may become inconsistent.
         */
        if (!is_journal_aborted(journal) &&
-           test_bit(JBD2_CHECKPOINT_IO_ERROR, &journal->j_atomic_flags))
+           jbd2_check_fs_dev_write_error(journal))
                jbd2_journal_abort(journal, -EIO);
 
        if (journal->j_sb_buffer) {