mirror of
https://github.com/brain-hackers/linux-brain.git
synced 2024-06-09 23:36:23 +09:00
md/raid1/10: add missed blk plug
[ Upstream commit 18022a1bd3
]
flush_pending_writes isn't always called with block plug, so add it, and plug
works in nested way.
Signed-off-by: Shaohua Li <shli@fb.com>
Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
86659fbb32
commit
567c1f767e
|
@ -810,11 +810,15 @@ static void flush_pending_writes(struct r1conf *conf)
|
|||
spin_lock_irq(&conf->device_lock);
|
||||
|
||||
if (conf->pending_bio_list.head) {
|
||||
struct blk_plug plug;
|
||||
struct bio *bio;
|
||||
|
||||
bio = bio_list_get(&conf->pending_bio_list);
|
||||
conf->pending_count = 0;
|
||||
spin_unlock_irq(&conf->device_lock);
|
||||
blk_start_plug(&plug);
|
||||
flush_bio_list(conf, bio);
|
||||
blk_finish_plug(&plug);
|
||||
} else
|
||||
spin_unlock_irq(&conf->device_lock);
|
||||
}
|
||||
|
|
|
@ -890,10 +890,13 @@ static void flush_pending_writes(struct r10conf *conf)
|
|||
spin_lock_irq(&conf->device_lock);
|
||||
|
||||
if (conf->pending_bio_list.head) {
|
||||
struct blk_plug plug;
|
||||
struct bio *bio;
|
||||
|
||||
bio = bio_list_get(&conf->pending_bio_list);
|
||||
conf->pending_count = 0;
|
||||
spin_unlock_irq(&conf->device_lock);
|
||||
blk_start_plug(&plug);
|
||||
/* flush any pending bitmap writes to disk
|
||||
* before proceeding w/ I/O */
|
||||
bitmap_unplug(conf->mddev->bitmap);
|
||||
|
@ -914,6 +917,7 @@ static void flush_pending_writes(struct r10conf *conf)
|
|||
generic_make_request(bio);
|
||||
bio = next;
|
||||
}
|
||||
blk_finish_plug(&plug);
|
||||
} else
|
||||
spin_unlock_irq(&conf->device_lock);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue
Block a user