diff options
author | Zhihao Cheng <chengzhihao1@huawei.com> | 2023-12-13 02:32:21 +0100 |
---|---|---|
committer | Theodore Ts'o <tytso@mit.edu> | 2024-01-05 05:42:21 +0100 |
commit | 62ec1707cb071c95706d1bab85fbee8d5a3d2f24 (patch) | |
tree | bc315372bb15d37447976e35d7be8b1204a39a65 /fs/jbd2 | |
parent | jbd2: add errseq to detect client fs's bdev writeback error (diff) | |
download | linux-62ec1707cb071c95706d1bab85fbee8d5a3d2f24.tar.xz linux-62ec1707cb071c95706d1bab85fbee8d5a3d2f24.zip |
jbd2: replace journal state flag by checking errseq
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>
Diffstat (limited to 'fs/jbd2')
-rw-r--r-- | fs/jbd2/journal.c | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/fs/jbd2/journal.c b/fs/jbd2/journal.c index 559938a82379..b6c114c11b97 100644 --- a/fs/jbd2/journal.c +++ b/fs/jbd2/journal.c @@ -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) { |