btrfs: use scrub_pause_on/off() to reduce code in scrub_enumerate_chunks()
authorZhaolei <zhaolei@cn.fujitsu.com>
Wed, 5 Aug 2015 08:43:29 +0000 (16:43 +0800)
committerChris Mason <clm@fb.com>
Sun, 9 Aug 2015 14:07:12 +0000 (07:07 -0700)
Use new intruduced scrub_pause_on/off() can make this code block
clean and more readable.

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

index 08872026a254baf7408a5f856383fbfe2c856562..281de3f2041d2818517faa7a851e0a244b832bac 100644 (file)
@@ -3503,8 +3503,8 @@ int scrub_enumerate_chunks(struct scrub_ctx *sctx,
 
                wait_event(sctx->list_wait,
                           atomic_read(&sctx->bios_in_flight) == 0);
-               atomic_inc(&fs_info->scrubs_paused);
-               wake_up(&fs_info->scrub_pause_wait);
+
+               scrub_pause_on(fs_info);
 
                /*
                 * must be called before we decrease @scrub_paused.
@@ -3515,11 +3515,7 @@ int scrub_enumerate_chunks(struct scrub_ctx *sctx,
                           atomic_read(&sctx->workers_pending) == 0);
                atomic_set(&sctx->wr_ctx.flush_all_writes, 0);
 
-               mutex_lock(&fs_info->scrub_lock);
-               __scrub_blocked_if_needed(fs_info);
-               atomic_dec(&fs_info->scrubs_paused);
-               mutex_unlock(&fs_info->scrub_lock);
-               wake_up(&fs_info->scrub_pause_wait);
+               scrub_pause_off(fs_info);
 
                btrfs_put_block_group(cache);
                if (ret)