Re: Hang in md-raid1 with 3.7-rcX
From: NeilBrown <hidden>
Date: 2012-12-02 19:53:00
Also in:
lkml
On Sun, 2 Dec 2012 13:10:33 +0100 Torsten Kaiser [off-list ref] wrote:
On Tue, Nov 27, 2012 at 8:08 AM, Torsten Kaiser [off-list ref] wrote:quoted
On Tue, Nov 27, 2012 at 2:05 AM, NeilBrown [off-list ref] wrote:quoted
Can you test to see if this fixes it?Patch applied, I will try to get it stuck again. I don't have a reliable reproducers, but if the problem persists I will definitly report back here.With this patch I was not able to recreate the hang. Lacking an 100% way of recreating this, I can't be completely sure of the fix, but as you understood from the code how this hang could happen, I'm quite confident that the fix is working. (As I do not use the raid10 personality only patching raid1.c was sufficient for me, I didn't test the version that also patched raid10.c as its not even compiled on my kernel.) Thanks for the fix!
And thanks for testing! Linus doesn't seem to have pulled in the fix yet, but hopefully it will be in 3.7. NeilBrown
Torstenquoted
quoted
diff --git a/drivers/md/raid1.c b/drivers/md/raid1.c index 636bae0..a0f7309 100644 --- a/drivers/md/raid1.c +++ b/drivers/md/raid1.c@@ -963,7 +963,7 @@ static void raid1_unplug(struct blk_plug_cb *cb, bool from_schedule) struct r1conf *conf = mddev->private; struct bio *bio; - if (from_schedule) { + if (from_schedule || current->bio_list) { spin_lock_irq(&conf->device_lock); bio_list_merge(&conf->pending_bio_list, &plug->pending); conf->pending_count += plug->pending_cnt;
Attachments
- signature.asc [application/pgp-signature] 828 bytes