Re: [RFC PATCH] raid1: reset 'bi_next' before reuse the bio

2017-04-05 Thread NeilBrown
On Wed, Apr 05 2017, Michael Wang wrote: > On 04/05/2017 12:17 AM, NeilBrown wrote: > [snip] >>> diff --git a/drivers/md/raid1.c b/drivers/md/raid1.c >>> index 7d67235..0554110 100644 >>> --- a/drivers/md/raid1.c >>> +++ b/drivers/md/raid1.c >>> @@ -1986,11 +1986,13 @@ static int

Re: [RFC PATCH] raid1: reset 'bi_next' before reuse the bio

2017-04-05 Thread NeilBrown
On Wed, Apr 05 2017, Michael Wang wrote: > On 04/05/2017 12:17 AM, NeilBrown wrote: > [snip] >>> diff --git a/drivers/md/raid1.c b/drivers/md/raid1.c >>> index 7d67235..0554110 100644 >>> --- a/drivers/md/raid1.c >>> +++ b/drivers/md/raid1.c >>> @@ -1986,11 +1986,13 @@ static int

Re: [RFC PATCH] raid1: reset 'bi_next' before reuse the bio

2017-04-05 Thread Michael Wang
On 04/05/2017 12:17 AM, NeilBrown wrote: [snip] >> diff --git a/drivers/md/raid1.c b/drivers/md/raid1.c >> index 7d67235..0554110 100644 >> --- a/drivers/md/raid1.c >> +++ b/drivers/md/raid1.c >> @@ -1986,11 +1986,13 @@ static int fix_sync_read_error(struct r1bio *r1_bio) >> /*

Re: [RFC PATCH] raid1: reset 'bi_next' before reuse the bio

2017-04-05 Thread Michael Wang
On 04/05/2017 12:17 AM, NeilBrown wrote: [snip] >> diff --git a/drivers/md/raid1.c b/drivers/md/raid1.c >> index 7d67235..0554110 100644 >> --- a/drivers/md/raid1.c >> +++ b/drivers/md/raid1.c >> @@ -1986,11 +1986,13 @@ static int fix_sync_read_error(struct r1bio *r1_bio) >> /*

Re: [RFC PATCH] raid1: reset 'bi_next' before reuse the bio

2017-04-04 Thread NeilBrown
On Tue, Apr 04 2017, Michael Wang wrote: > During the testing we found the sync read bio can go through > path: > > md_do_sync() > sync_request() > generic_make_request() > blk_queue_bio() > blk_attempt_plug_merge() > bio->bi_next CHAINED HERE > > ... >

Re: [RFC PATCH] raid1: reset 'bi_next' before reuse the bio

2017-04-04 Thread NeilBrown
On Tue, Apr 04 2017, Michael Wang wrote: > During the testing we found the sync read bio can go through > path: > > md_do_sync() > sync_request() > generic_make_request() > blk_queue_bio() > blk_attempt_plug_merge() > bio->bi_next CHAINED HERE > > ... >

[RFC PATCH] raid1: reset 'bi_next' before reuse the bio

2017-04-04 Thread Michael Wang
During the testing we found the sync read bio can go through path: md_do_sync() sync_request() generic_make_request() blk_queue_bio() blk_attempt_plug_merge() bio->bi_next CHAINED HERE ... raid1d() sync_request_write()

[RFC PATCH] raid1: reset 'bi_next' before reuse the bio

2017-04-04 Thread Michael Wang
During the testing we found the sync read bio can go through path: md_do_sync() sync_request() generic_make_request() blk_queue_bio() blk_attempt_plug_merge() bio->bi_next CHAINED HERE ... raid1d() sync_request_write()