|
@@ -1069,7 +1069,7 @@ static void raid10_unplug(struct blk_plug_cb *cb, bool from_schedule)
|
|
struct r10conf *conf = mddev->private;
|
|
struct r10conf *conf = mddev->private;
|
|
struct bio *bio;
|
|
struct bio *bio;
|
|
|
|
|
|
- if (from_schedule) {
|
|
|
|
|
|
+ if (from_schedule || current->bio_list) {
|
|
spin_lock_irq(&conf->device_lock);
|
|
spin_lock_irq(&conf->device_lock);
|
|
bio_list_merge(&conf->pending_bio_list, &plug->pending);
|
|
bio_list_merge(&conf->pending_bio_list, &plug->pending);
|
|
conf->pending_count += plug->pending_cnt;
|
|
conf->pending_count += plug->pending_cnt;
|