? unknown sender #
Message details and related content
md/raid5: STIPE_HANDLE bit in handle_strype_dirtying() Set STRIPE_HANDLE flag only if it is required. Signed-off-by: Markus Stockhausen <redacted>
diff --git a/drivers/md/raid5.c b/drivers/md/raid5.c
index 6a7e638..f8630c1 100644
--- a/drivers/md/raid5.c
+++ b/drivers/md/raid5.c@@ -3584,7 +3584,6 @@ static void handle_stripe_dirtying(struct r5conf *conf, } pr_debug("for sector %llu, rmw=%d rcw=%d\n", (unsigned long long)sh->sector, rmw, rcw); - set_bit(STRIPE_HANDLE, &sh->state); if ((rmw < rcw || (rmw == rcw && conf->rmw_level == PARITY_ENABLE_RMW)) && rmw > 0) { /* prefer read-modify-write, but need to get some data */ if (conf->mddev->queue)
@@ -3646,8 +3645,10 @@ static void handle_stripe_dirtying(struct r5conf *conf, } if (rcw > disks && rmw > disks && - !test_bit(STRIPE_PREREAD_ACTIVE, &sh->state)) + !test_bit(STRIPE_PREREAD_ACTIVE, &sh->state)) { set_bit(STRIPE_DELAYED, &sh->state); + set_bit(STRIPE_HANDLE, &sh->state); + } /* now if nothing is locked, and if we have enough data, * we can start a write request