diff options
author | NeilBrown <neilb@suse.de> | 2012-08-02 08:33:20 +1000 |
---|---|---|
committer | NeilBrown <neilb@suse.de> | 2012-08-02 08:33:20 +1000 |
commit | f54a9d0e59c4bea3db733921ca9147612a6f292c (patch) | |
tree | e17aa5d2a7220cfe7466cc4f8c74af5ed672a591 /drivers/md/bitmap.c | |
parent | 46a06401f6ba13e59d24746fa9ffa6773b69eee3 (diff) | |
download | op-kernel-dev-f54a9d0e59c4bea3db733921ca9147612a6f292c.zip op-kernel-dev-f54a9d0e59c4bea3db733921ca9147612a6f292c.tar.gz |
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.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/md/bitmap.c b/drivers/md/bitmap.c index 15dbe03..94e7f6b 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 prepare_to_wait(&bitmap->overflow_wait, &__wait, TASK_UNINTERRUPTIBLE); spin_unlock_irq(&bitmap->counts.lock); - io_schedule(); + schedule(); finish_wait(&bitmap->overflow_wait, &__wait); continue; } |