diff options
| -rw-r--r-- | fs/btrfs/scrub.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/fs/btrfs/scrub.c b/fs/btrfs/scrub.c index 8db6a6413a5f..bdbb94f245c9 100644 --- a/fs/btrfs/scrub.c +++ b/fs/btrfs/scrub.c | |||
| @@ -785,6 +785,17 @@ static int scrub_handle_errored_block(struct scrub_block *sblock_to_check) | |||
| 785 | 785 | ||
| 786 | BUG_ON(sblock_to_check->page_count < 1); | 786 | BUG_ON(sblock_to_check->page_count < 1); |
| 787 | fs_info = sctx->dev_root->fs_info; | 787 | fs_info = sctx->dev_root->fs_info; |
| 788 | if (sblock_to_check->pagev[0]->flags & BTRFS_EXTENT_FLAG_SUPER) { | ||
| 789 | /* | ||
| 790 | * if we find an error in a super block, we just report it. | ||
| 791 | * They will get written with the next transaction commit | ||
| 792 | * anyway | ||
| 793 | */ | ||
| 794 | spin_lock(&sctx->stat_lock); | ||
| 795 | ++sctx->stat.super_errors; | ||
| 796 | spin_unlock(&sctx->stat_lock); | ||
| 797 | return 0; | ||
| 798 | } | ||
| 788 | length = sblock_to_check->page_count * PAGE_SIZE; | 799 | length = sblock_to_check->page_count * PAGE_SIZE; |
| 789 | logical = sblock_to_check->pagev[0]->logical; | 800 | logical = sblock_to_check->pagev[0]->logical; |
| 790 | generation = sblock_to_check->pagev[0]->generation; | 801 | generation = sblock_to_check->pagev[0]->generation; |
