diff options
Diffstat (limited to 'fs/btrfs/scrub.c')
| -rw-r--r-- | fs/btrfs/scrub.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/fs/btrfs/scrub.c b/fs/btrfs/scrub.c index f2bb13a23f86..e427cb7ee12c 100644 --- a/fs/btrfs/scrub.c +++ b/fs/btrfs/scrub.c | |||
| @@ -2607,9 +2607,9 @@ static int scrub_extent_for_parity(struct scrub_parity *sparity, | |||
| 2607 | ret = scrub_pages_for_parity(sparity, logical, l, physical, dev, | 2607 | ret = scrub_pages_for_parity(sparity, logical, l, physical, dev, |
| 2608 | flags, gen, mirror_num, | 2608 | flags, gen, mirror_num, |
| 2609 | have_csum ? csum : NULL); | 2609 | have_csum ? csum : NULL); |
| 2610 | skip: | ||
| 2611 | if (ret) | 2610 | if (ret) |
| 2612 | return ret; | 2611 | return ret; |
| 2612 | skip: | ||
| 2613 | len -= l; | 2613 | len -= l; |
| 2614 | logical += l; | 2614 | logical += l; |
| 2615 | physical += l; | 2615 | physical += l; |
| @@ -3053,7 +3053,7 @@ static noinline_for_stack int scrub_stripe(struct scrub_ctx *sctx, | |||
| 3053 | 3053 | ||
| 3054 | ppath = btrfs_alloc_path(); | 3054 | ppath = btrfs_alloc_path(); |
| 3055 | if (!ppath) { | 3055 | if (!ppath) { |
| 3056 | btrfs_free_path(ppath); | 3056 | btrfs_free_path(path); |
| 3057 | return -ENOMEM; | 3057 | return -ENOMEM; |
| 3058 | } | 3058 | } |
| 3059 | 3059 | ||
| @@ -3065,6 +3065,8 @@ static noinline_for_stack int scrub_stripe(struct scrub_ctx *sctx, | |||
| 3065 | path->search_commit_root = 1; | 3065 | path->search_commit_root = 1; |
| 3066 | path->skip_locking = 1; | 3066 | path->skip_locking = 1; |
| 3067 | 3067 | ||
| 3068 | ppath->search_commit_root = 1; | ||
| 3069 | ppath->skip_locking = 1; | ||
| 3068 | /* | 3070 | /* |
| 3069 | * trigger the readahead for extent tree csum tree and wait for | 3071 | * trigger the readahead for extent tree csum tree and wait for |
| 3070 | * completion. During readahead, the scrub is officially paused | 3072 | * completion. During readahead, the scrub is officially paused |
