jbd2: optimize jbd2_log_do_checkpoint() a bit
When we discover written out buffer in transaction checkpoint list we don't have to recheck validity of a transaction. Either this is the last buffer in a transaction - and then we are done - or this isn't and then we can just take another buffer from the checkpoint list without dropping j_list_lock. Signed-off-by: Jan Kara <jack@suse.cz> Signed-off-by: Theodore Ts'o <tytso@mit.edu>
This commit is contained in:
parent
dc6e8d669c
commit
0e5ecf0a76
1 changed files with 4 additions and 3 deletions
|
@ -285,9 +285,10 @@ int jbd2_log_do_checkpoint(journal_t *journal)
|
|||
if (unlikely(buffer_write_io_error(bh)) && !result)
|
||||
result = -EIO;
|
||||
BUFFER_TRACE(bh, "remove from checkpoint");
|
||||
__jbd2_journal_remove_checkpoint(jh);
|
||||
spin_unlock(&journal->j_list_lock);
|
||||
goto retry;
|
||||
if (__jbd2_journal_remove_checkpoint(jh))
|
||||
/* The transaction was released; we're done */
|
||||
goto out;
|
||||
continue;
|
||||
}
|
||||
/*
|
||||
* Important: we are about to write the buffer, and
|
||||
|
|
Loading…
Reference in a new issue