Messages in this thread Patch in this message | | | From | NeilBrown <> | Date | Fri, 18 Jan 2008 22:02:51 +1100 | Subject | [PATCH 004 of 4] md: Fix an occasional deadlock in raid5 - FIX |
| |
(This should be merged with fix-occasional-deadlock-in-raid5.patch)
As we don't call stripe_handle in make_request any more, we need to clear STRIPE_DELAYED to (previously done by stripe_handle) to ensure that we test if the stripe still needs to be delayed or not.
Signed-off-by: Neil Brown <neilb@suse.de>
### Diffstat output ./drivers/md/raid5.c | 1 + 1 file changed, 1 insertion(+)
diff .prev/drivers/md/raid5.c ./drivers/md/raid5.c --- .prev/drivers/md/raid5.c 2008-01-18 14:58:55.000000000 +1100 +++ ./drivers/md/raid5.c 2008-01-18 14:59:53.000000000 +1100 @@ -3549,6 +3549,7 @@ static int make_request(struct request_q } finish_wait(&conf->wait_for_overlap, &w); set_bit(STRIPE_HANDLE, &sh->state); + clear_bit(STRIPE_DELAYED, &sh->state); release_stripe(sh); } else { /* cannot get stripe for read-ahead, just give-up */
| |