Commit 545b0840 authored by Andrew Morton's avatar Andrew Morton Committed by Linus Torvalds

[PATCH] Fix ext3 transaction batching

ext3 transaction batching has been ineffective since the scheduler changes
forced us to replace the yield() with a schedule().

Using schedule_timeout(1) fixes it up again.  Benchmarking is positive with
wither a 1 or 10 millisecond delay in there, so there appears to be no need
to play around with HZ.
parent 01cc53b2
...@@ -1354,10 +1354,10 @@ int journal_stop(handle_t *handle) ...@@ -1354,10 +1354,10 @@ int journal_stop(handle_t *handle)
* by 30x or more... * by 30x or more...
*/ */
if (handle->h_sync) { if (handle->h_sync) {
set_current_state(TASK_RUNNING);
do { do {
old_handle_count = transaction->t_handle_count; old_handle_count = transaction->t_handle_count;
schedule(); set_current_state(TASK_UNINTERRUPTIBLE);
schedule_timeout(1);
} while (old_handle_count != transaction->t_handle_count); } while (old_handle_count != transaction->t_handle_count);
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment