aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/md/bitmap.c
diff options
context:
space:
mode:
authorNeilBrown <neilb@suse.de>2012-08-01 18:33:20 -0400
committerNeilBrown <neilb@suse.de>2012-08-01 18:33:20 -0400
commitf54a9d0e59c4bea3db733921ca9147612a6f292c (patch)
treee17aa5d2a7220cfe7466cc4f8c74af5ed672a591 /drivers/md/bitmap.c
parent46a06401f6ba13e59d24746fa9ffa6773b69eee3 (diff)
md/raid1: submit IO from originating thread instead of md thread.
queuing writes to the md thread means that all requests go through the one processor which may not be able to keep up with very high request rates. So use the plugging infrastructure to submit all requests on unplug. If a 'schedule' is needed, we fall back on the old approach of handing the requests to the thread for it to handle. Signed-off-by: NeilBrown <neilb@suse.de>
Diffstat (limited to 'drivers/md/bitmap.c')
-rw-r--r--drivers/md/bitmap.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/md/bitmap.c b/drivers/md/bitmap.c
index 15dbe03117e4..94e7f6ba2e11 100644
--- a/drivers/md/bitmap.c
+++ b/drivers/md/bitmap.c
@@ -1305,7 +1305,7 @@ int bitmap_startwrite(struct bitmap *bitmap, sector_t offset, unsigned long sect
1305 prepare_to_wait(&bitmap->overflow_wait, &__wait, 1305 prepare_to_wait(&bitmap->overflow_wait, &__wait,
1306 TASK_UNINTERRUPTIBLE); 1306 TASK_UNINTERRUPTIBLE);
1307 spin_unlock_irq(&bitmap->counts.lock); 1307 spin_unlock_irq(&bitmap->counts.lock);
1308 io_schedule(); 1308 schedule();
1309 finish_wait(&bitmap->overflow_wait, &__wait); 1309 finish_wait(&bitmap->overflow_wait, &__wait);
1310 continue; 1310 continue;
1311 } 1311 }