|
@@ -2898,6 +2898,8 @@ static void handle_stripe5(struct stripe_head *sh)
|
|
|
|
|
|
for (i = conf->raid_disks; i--; ) {
|
|
|
set_bit(R5_Wantwrite, &sh->dev[i].flags);
|
|
|
+ set_bit(R5_LOCKED, &dev->flags);
|
|
|
+ s.locked++;
|
|
|
if (!test_and_set_bit(STRIPE_OP_IO, &sh->ops.pending))
|
|
|
sh->ops.count++;
|
|
|
}
|
|
@@ -2911,6 +2913,7 @@ static void handle_stripe5(struct stripe_head *sh)
|
|
|
conf->raid_disks);
|
|
|
s.locked += handle_write_operations5(sh, 1, 1);
|
|
|
} else if (s.expanded &&
|
|
|
+ s.locked == 0 &&
|
|
|
!test_bit(STRIPE_OP_POSTXOR, &sh->ops.pending)) {
|
|
|
clear_bit(STRIPE_EXPAND_READY, &sh->state);
|
|
|
atomic_dec(&conf->reshape_stripes);
|