jbd: use WRITE_SYNC_PLUG instead of WRITE_SYNC
When you are going to be submitting several sync writes, we want to give the IO scheduler a chance to merge some of them. Instead of using the implicitly unplugging WRITE_SYNC variant, use WRITE_SYNC_PLUG and rely on sync_buffer() doing the unplug when someone does a wait_on_buffer()/lock_buffer(). Signed-off-by: Jens Axboe <jens.axboe@oracle.com> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
Родитель
9cf6b720f8
Коммит
6c4bac6b33
|
@ -351,8 +351,13 @@ void journal_commit_transaction(journal_t *journal)
|
|||
spin_lock(&journal->j_state_lock);
|
||||
commit_transaction->t_state = T_LOCKED;
|
||||
|
||||
/*
|
||||
* Use plugged writes here, since we want to submit several before
|
||||
* we unplug the device. We don't do explicit unplugging in here,
|
||||
* instead we rely on sync_buffer() doing the unplug for us.
|
||||
*/
|
||||
if (commit_transaction->t_synchronous_commit)
|
||||
write_op = WRITE_SYNC;
|
||||
write_op = WRITE_SYNC_PLUG;
|
||||
spin_lock(&commit_transaction->t_handle_lock);
|
||||
while (commit_transaction->t_updates) {
|
||||
DEFINE_WAIT(wait);
|
||||
|
|
Загрузка…
Ссылка в новой задаче