jbd2: if the journal is aborted then don't allow update of the log tail
This updates the jbd2 superblock unnecessarily, and on an abort we shouldn't truncate the log. Signed-off-by: Theodore Ts'o <tytso@mit.edu> Cc: stable@vger.kernel.org
This commit is contained in:
Родитель
fb7c02445c
Коммит
85e0c4e89c
|
@ -974,7 +974,7 @@ out:
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* This is a variaon of __jbd2_update_log_tail which checks for validity of
|
* This is a variation of __jbd2_update_log_tail which checks for validity of
|
||||||
* provided log tail and locks j_checkpoint_mutex. So it is safe against races
|
* provided log tail and locks j_checkpoint_mutex. So it is safe against races
|
||||||
* with other threads updating log tail.
|
* with other threads updating log tail.
|
||||||
*/
|
*/
|
||||||
|
@ -1417,6 +1417,9 @@ int jbd2_journal_update_sb_log_tail(journal_t *journal, tid_t tail_tid,
|
||||||
journal_superblock_t *sb = journal->j_superblock;
|
journal_superblock_t *sb = journal->j_superblock;
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
|
if (is_journal_aborted(journal))
|
||||||
|
return -EIO;
|
||||||
|
|
||||||
BUG_ON(!mutex_is_locked(&journal->j_checkpoint_mutex));
|
BUG_ON(!mutex_is_locked(&journal->j_checkpoint_mutex));
|
||||||
jbd_debug(1, "JBD2: updating superblock (start %lu, seq %u)\n",
|
jbd_debug(1, "JBD2: updating superblock (start %lu, seq %u)\n",
|
||||||
tail_block, tail_tid);
|
tail_block, tail_tid);
|
||||||
|
|
Загрузка…
Ссылка в новой задаче