mirror of
https://github.com/FEX-Emu/linux.git
synced 2024-12-29 13:00:35 +00:00
jbd2: cleanup write flags handling from jbd2_write_superblock()
Currently jbd2_write_superblock() silently adds REQ_SYNC to flags with which journal superblock is written. Make this explicit by making flags passed down to jbd2_write_superblock() contain REQ_SYNC. CC: linux-ext4@vger.kernel.org Signed-off-by: Jan Kara <jack@suse.cz> Signed-off-by: Theodore Ts'o <tytso@mit.edu>
This commit is contained in:
parent
00473374b7
commit
17f423b516
@ -926,7 +926,8 @@ int __jbd2_update_log_tail(journal_t *journal, tid_t tid, unsigned long block)
|
|||||||
* space and if we lose sb update during power failure we'd replay
|
* space and if we lose sb update during power failure we'd replay
|
||||||
* old transaction with possibly newly overwritten data.
|
* old transaction with possibly newly overwritten data.
|
||||||
*/
|
*/
|
||||||
ret = jbd2_journal_update_sb_log_tail(journal, tid, block, REQ_FUA);
|
ret = jbd2_journal_update_sb_log_tail(journal, tid, block,
|
||||||
|
REQ_SYNC | REQ_FUA);
|
||||||
if (ret)
|
if (ret)
|
||||||
goto out;
|
goto out;
|
||||||
|
|
||||||
@ -1327,7 +1328,7 @@ static int journal_reset(journal_t *journal)
|
|||||||
jbd2_journal_update_sb_log_tail(journal,
|
jbd2_journal_update_sb_log_tail(journal,
|
||||||
journal->j_tail_sequence,
|
journal->j_tail_sequence,
|
||||||
journal->j_tail,
|
journal->j_tail,
|
||||||
REQ_FUA);
|
REQ_SYNC | REQ_FUA);
|
||||||
mutex_unlock(&journal->j_checkpoint_mutex);
|
mutex_unlock(&journal->j_checkpoint_mutex);
|
||||||
}
|
}
|
||||||
return jbd2_journal_start_thread(journal);
|
return jbd2_journal_start_thread(journal);
|
||||||
@ -1361,7 +1362,7 @@ static int jbd2_write_superblock(journal_t *journal, int write_flags)
|
|||||||
jbd2_superblock_csum_set(journal, sb);
|
jbd2_superblock_csum_set(journal, sb);
|
||||||
get_bh(bh);
|
get_bh(bh);
|
||||||
bh->b_end_io = end_buffer_write_sync;
|
bh->b_end_io = end_buffer_write_sync;
|
||||||
ret = submit_bh(REQ_OP_WRITE, write_flags | REQ_SYNC, bh);
|
ret = submit_bh(REQ_OP_WRITE, write_flags, bh);
|
||||||
wait_on_buffer(bh);
|
wait_on_buffer(bh);
|
||||||
if (buffer_write_io_error(bh)) {
|
if (buffer_write_io_error(bh)) {
|
||||||
clear_buffer_write_io_error(bh);
|
clear_buffer_write_io_error(bh);
|
||||||
@ -1467,7 +1468,7 @@ void jbd2_journal_update_sb_errno(journal_t *journal)
|
|||||||
sb->s_errno = cpu_to_be32(journal->j_errno);
|
sb->s_errno = cpu_to_be32(journal->j_errno);
|
||||||
read_unlock(&journal->j_state_lock);
|
read_unlock(&journal->j_state_lock);
|
||||||
|
|
||||||
jbd2_write_superblock(journal, REQ_FUA);
|
jbd2_write_superblock(journal, REQ_SYNC | REQ_FUA);
|
||||||
}
|
}
|
||||||
EXPORT_SYMBOL(jbd2_journal_update_sb_errno);
|
EXPORT_SYMBOL(jbd2_journal_update_sb_errno);
|
||||||
|
|
||||||
@ -1734,7 +1735,7 @@ int jbd2_journal_destroy(journal_t *journal)
|
|||||||
write_unlock(&journal->j_state_lock);
|
write_unlock(&journal->j_state_lock);
|
||||||
|
|
||||||
jbd2_mark_journal_empty(journal,
|
jbd2_mark_journal_empty(journal,
|
||||||
REQ_PREFLUSH | REQ_FUA);
|
REQ_SYNC | REQ_PREFLUSH | REQ_FUA);
|
||||||
mutex_unlock(&journal->j_checkpoint_mutex);
|
mutex_unlock(&journal->j_checkpoint_mutex);
|
||||||
} else
|
} else
|
||||||
err = -EIO;
|
err = -EIO;
|
||||||
@ -1993,7 +1994,7 @@ int jbd2_journal_flush(journal_t *journal)
|
|||||||
* the magic code for a fully-recovered superblock. Any future
|
* the magic code for a fully-recovered superblock. Any future
|
||||||
* commits of data to the journal will restore the current
|
* commits of data to the journal will restore the current
|
||||||
* s_start value. */
|
* s_start value. */
|
||||||
jbd2_mark_journal_empty(journal, REQ_FUA);
|
jbd2_mark_journal_empty(journal, REQ_SYNC | REQ_FUA);
|
||||||
mutex_unlock(&journal->j_checkpoint_mutex);
|
mutex_unlock(&journal->j_checkpoint_mutex);
|
||||||
write_lock(&journal->j_state_lock);
|
write_lock(&journal->j_state_lock);
|
||||||
J_ASSERT(!journal->j_running_transaction);
|
J_ASSERT(!journal->j_running_transaction);
|
||||||
@ -2039,7 +2040,7 @@ int jbd2_journal_wipe(journal_t *journal, int write)
|
|||||||
if (write) {
|
if (write) {
|
||||||
/* Lock to make assertions happy... */
|
/* Lock to make assertions happy... */
|
||||||
mutex_lock(&journal->j_checkpoint_mutex);
|
mutex_lock(&journal->j_checkpoint_mutex);
|
||||||
jbd2_mark_journal_empty(journal, REQ_FUA);
|
jbd2_mark_journal_empty(journal, REQ_SYNC | REQ_FUA);
|
||||||
mutex_unlock(&journal->j_checkpoint_mutex);
|
mutex_unlock(&journal->j_checkpoint_mutex);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user