mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-07-22 03:27:30 -04:00
jbd2: Convert journal commit to bh_submit()
Avoid an extra indirect function call by using bh_submit() instead of submit_bh() in journal_submit_commit_record() and jbd2_journal_commit_transaction(). These both use journal_end_buffer_io_sync(), so it's more straightforward to do them both at once. Signed-off-by: Matthew Wilcox (Oracle) <willy@infradead.org> Link: https://patch.msgid.link/20260528173150.1093780-17-willy@infradead.org Acked-by: Theodore Ts'o <tytso@mit.edu> Reviewed-by: Jan Kara <jack@suse.cz> Cc: linux-ext4@vger.kernel.org Signed-off-by: Christian Brauner (Amutable) <brauner@kernel.org>
This commit is contained in:
committed by
Christian Brauner
parent
aa17449d60
commit
e4b09ba06e
@@ -29,8 +29,10 @@
|
||||
/*
|
||||
* IO end handler for temporary buffer_heads handling writes to the journal.
|
||||
*/
|
||||
static void journal_end_buffer_io_sync(struct buffer_head *bh, int uptodate)
|
||||
static void journal_end_buffer_io_sync(struct bio *bio)
|
||||
{
|
||||
struct buffer_head *bh;
|
||||
bool uptodate = bio_endio_bh(bio, &bh);
|
||||
struct buffer_head *orig_bh = bh->b_private;
|
||||
|
||||
BUFFER_TRACE(bh, "");
|
||||
@@ -147,13 +149,12 @@ static int journal_submit_commit_record(journal_t *journal,
|
||||
lock_buffer(bh);
|
||||
clear_buffer_dirty(bh);
|
||||
set_buffer_uptodate(bh);
|
||||
bh->b_end_io = journal_end_buffer_io_sync;
|
||||
|
||||
if (journal->j_flags & JBD2_BARRIER &&
|
||||
!jbd2_has_feature_async_commit(journal))
|
||||
write_flags |= REQ_PREFLUSH | REQ_FUA;
|
||||
|
||||
submit_bh(write_flags, bh);
|
||||
bh_submit(bh, write_flags, journal_end_buffer_io_sync);
|
||||
*cbh = bh;
|
||||
return 0;
|
||||
}
|
||||
@@ -751,9 +752,9 @@ void jbd2_journal_commit_transaction(journal_t *journal)
|
||||
lock_buffer(bh);
|
||||
clear_buffer_dirty(bh);
|
||||
set_buffer_uptodate(bh);
|
||||
bh->b_end_io = journal_end_buffer_io_sync;
|
||||
submit_bh(REQ_OP_WRITE | JBD2_JOURNAL_REQ_FLAGS,
|
||||
bh);
|
||||
bh_submit(bh,
|
||||
REQ_OP_WRITE | JBD2_JOURNAL_REQ_FLAGS,
|
||||
journal_end_buffer_io_sync);
|
||||
}
|
||||
cond_resched();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user