]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
md/raid5: let stripe batch bm_seq comparison wrap-safe
authorChen Cheng <chencheng@fnnas.com>
Thu, 18 Jun 2026 02:57:35 +0000 (10:57 +0800)
committerYu Kuai <yukuai@fygo.io>
Sat, 20 Jun 2026 21:21:07 +0000 (05:21 +0800)
Once the 32-bit seq wraps, a newer bm_seq can look smaller
than old, so .. covert to wrap-safe calculate way.

Signed-off-by: Chen Cheng <chencheng@fnnas.com>
Link: https://patch.msgid.link/20260618025735.915113-1-chencheng@fnnas.com
Signed-off-by: Yu Kuai <yukuai@fygo.io>
drivers/md/raid5.c

index 180ff0660b6ad64289f99e8d5ac384a270e42b20..f35c2a7b2be1b8de73542998417aa50039eef63b 100644 (file)
@@ -996,7 +996,7 @@ static void stripe_add_to_batch_list(struct r5conf *conf,
        if (test_and_clear_bit(STRIPE_BIT_DELAY, &sh->state)) {
                int seq = sh->bm_seq;
                if (test_bit(STRIPE_BIT_DELAY, &sh->batch_head->state) &&
-                   sh->batch_head->bm_seq > seq)
+                   sh->batch_head->bm_seq - seq > 0)
                        seq = sh->batch_head->bm_seq;
                set_bit(STRIPE_BIT_DELAY, &sh->batch_head->state);
                sh->batch_head->bm_seq = seq;