btrfs: Check cancel and pause in interval of scrub operation
authorZhao Lei <zhaolei@cn.fujitsu.com>
Tue, 21 Jul 2015 04:22:29 +0000 (12:22 +0800)
committerChris Mason <clm@fb.com>
Sun, 9 Aug 2015 14:07:11 +0000 (07:07 -0700)
commitf2f66a2f886383fb76aca8ecc1bcc116c5d1f6fe
treebdacc73dabeab49648b13a2a9df5b66032682e70
parent78fa177029802f7f10953d357067171f39a79b81
btrfs: Check cancel and pause in interval of scrub operation

Old code checking cancel and pause request inside scrub stripe
operation, like:
  loop() {
    if (parity) {
      scrub_parity_stripe();
      continue;
    }

    check_cancel_and_pause()

    scrub_normal_stripe();
  }

Reason is when introduce raid56 stripe scrub, new code is inserted
simplely to front of loop.

Better to:
  loop() {
    check_cancel_and_pause()

    if (parity)
      scrub_parity_stripe();
    else
      scrub_normal_stripe();
  }

This patch adjusted code place to realize above sequence.

Signed-off-by: Zhao Lei <zhaolei@cn.fujitsu.com>
Signed-off-by: Chris Mason <clm@fb.com>
fs/btrfs/scrub.c