]> git.kernelconcepts.de Git - karo-tx-linux.git/commitdiff
md/raid5: output stripe state for debug
authorShaohua Li <shli@fb.com>
Wed, 9 Mar 2016 18:08:38 +0000 (10:08 -0800)
committerShaohua Li <shli@fb.com>
Wed, 9 Mar 2016 18:08:38 +0000 (10:08 -0800)
Neil recently fixed an obscure race in break_stripe_batch_list. Debug would be
quite convenient if we know the stripe state. This is what this patch does.

Signed-off-by: Shaohua Li <shli@fb.com>
drivers/md/raid5.c

index 32d52878f18227efa8a386403af5ea308ed9d0da..31ac0f0bf86f64fe6e31286eaa9d617fd2cc7dc3 100644 (file)
@@ -4236,7 +4236,7 @@ static void break_stripe_batch_list(struct stripe_head *head_sh,
 
                list_del_init(&sh->batch_list);
 
-               WARN_ON_ONCE(sh->state & ((1 << STRIPE_ACTIVE) |
+               WARN_ONCE(sh->state & ((1 << STRIPE_ACTIVE) |
                                          (1 << STRIPE_SYNCING) |
                                          (1 << STRIPE_REPLACED) |
                                          (1 << STRIPE_DELAYED) |
@@ -4248,9 +4248,11 @@ static void break_stripe_batch_list(struct stripe_head *head_sh,
                                          (1 << STRIPE_DISCARD) |
                                          (1 << STRIPE_BATCH_READY) |
                                          (1 << STRIPE_BATCH_ERR) |
-                                         (1 << STRIPE_BITMAP_PENDING)));
-               WARN_ON_ONCE(head_sh->state & ((1 << STRIPE_DISCARD) |
-                                             (1 << STRIPE_REPLACED)));
+                                         (1 << STRIPE_BITMAP_PENDING)),
+                       "stripe state: %lx\n", sh->state);
+               WARN_ONCE(head_sh->state & ((1 << STRIPE_DISCARD) |
+                                             (1 << STRIPE_REPLACED)),
+                       "head stripe state: %lx\n", head_sh->state);
 
                set_mask_bits(&sh->state, ~(STRIPE_EXPAND_SYNC_FLAGS |
                                            (1 << STRIPE_PREREAD_ACTIVE) |