aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorzhangyi (F) <[email protected]>2019-12-04 20:46:13 +0800
committerTheodore Ts'o <[email protected]>2020-01-25 03:00:20 -0500
commit0e98c084a21177ef136149c6a293b3d1eb33ff92 (patch)
tree5acdd78d124196de0d1a90ee8d207d16710f4e3a
parent51f57b01e4a3c7d7bdceffd84de35144e8c538e7 (diff)
jbd2: make sure ESHUTDOWN to be recorded in the journal superblock
Commit fb7c02445c49 ("ext4: pass -ESHUTDOWN code to jbd2 layer") want to allow jbd2 layer to distinguish shutdown journal abort from other error cases. So the ESHUTDOWN should be taken precedence over any other errno which has already been recoded after EXT4_FLAGS_SHUTDOWN is set, but it only update errno in the journal suoerblock now if the old errno is 0. Fixes: fb7c02445c49 ("ext4: pass -ESHUTDOWN code to jbd2 layer") Signed-off-by: zhangyi (F) <[email protected]> Reviewed-by: Jan Kara <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Theodore Ts'o <[email protected]>
-rw-r--r--fs/jbd2/journal.c3
1 files changed, 1 insertions, 2 deletions
diff --git a/fs/jbd2/journal.c b/fs/jbd2/journal.c
index 9e9275540071..a821c469cab6 100644
--- a/fs/jbd2/journal.c
+++ b/fs/jbd2/journal.c
@@ -2147,8 +2147,7 @@ static void __journal_abort_soft (journal_t *journal, int errno)
if (journal->j_flags & JBD2_ABORT) {
write_unlock(&journal->j_state_lock);
- if (!old_errno && old_errno != -ESHUTDOWN &&
- errno == -ESHUTDOWN)
+ if (old_errno != -ESHUTDOWN && errno == -ESHUTDOWN)
jbd2_journal_update_sb_errno(journal);
return;
}