Re: [PATCH md 6 of 6] Fix handling of overlapping requests in raid5

2005-02-07 Thread Andrew Morton
Neil Brown <[EMAIL PROTECTED]> wrote: > > On Monday February 7, [EMAIL PROTECTED] wrote: > > NeilBrown <[EMAIL PROTECTED]> wrote: > > > > > > + retry: > > > sh = get_active_stripe(conf, new_sector, pd_idx, > > > (bi->bi_rw&RWA_MASK)); > > > if (sh) { > > > - >

Re: [PATCH md 6 of 6] Fix handling of overlapping requests in raid5

2005-02-07 Thread Neil Brown
On Monday February 7, [EMAIL PROTECTED] wrote: > NeilBrown <[EMAIL PROTECTED]> wrote: > > > > + retry: > > sh = get_active_stripe(conf, new_sector, pd_idx, > > (bi->bi_rw&RWA_MASK)); > > if (sh) { > > - > > - while (!add_stripe_bio(sh, bi, dd_idx, > >

Re: [PATCH md 6 of 6] Fix handling of overlapping requests in raid5

2005-02-07 Thread Andrew Morton
NeilBrown <[EMAIL PROTECTED]> wrote: > > + retry: > sh = get_active_stripe(conf, new_sector, pd_idx, > (bi->bi_rw&RWA_MASK)); > if (sh) { > - > -while (!add_stripe_bio(sh, bi, dd_idx, > (bi->bi_rw&RW_MASK))) { > -/

[PATCH md 6 of 6] Fix handling of overlapping requests in raid5

2005-02-06 Thread NeilBrown
If we detect an overlap, we set a flag and wait for a wakeup. When requests are handled, if the flag was set, we perform the wakeup. Note that the code currently in -mm is badly broken. With this patch applied, it passes tests the use O_DIRECT to cause lots of overlapping requests. Signed-off-b