diff options
author | Qu Wenruo <wqu@suse.com> | 2019-03-20 01:39:14 -0400 |
---|---|---|
committer | David Sterba <dsterba@suse.com> | 2019-04-29 13:02:32 -0400 |
commit | bf871c3b43b1dcc3f2a076ff39a8f1ce7959d958 (patch) | |
tree | 138860f69a460a93795ae4c369d98a9e26435f0c /fs/btrfs/tree-checker.c | |
parent | f114024376bceb1c0f61a7bad4a72a0f978767af (diff) |
btrfs: tree-checker: Make btrfs_check_chunk_valid() return EUCLEAN instead of EIO
To follow the standard behavior of tree-checker.
Reviewed-by: Johannes Thumshirn <jthumshirn@suse.de>
Signed-off-by: Qu Wenruo <wqu@suse.com>
Reviewed-by: David Sterba <dsterba@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
Diffstat (limited to 'fs/btrfs/tree-checker.c')
-rw-r--r-- | fs/btrfs/tree-checker.c | 22 |
1 files changed, 11 insertions, 11 deletions
diff --git a/fs/btrfs/tree-checker.c b/fs/btrfs/tree-checker.c index 80d87814f261..75cc9e1d61bb 100644 --- a/fs/btrfs/tree-checker.c +++ b/fs/btrfs/tree-checker.c | |||
@@ -496,7 +496,7 @@ static void chunk_err(const struct btrfs_fs_info *fs_info, | |||
496 | /* | 496 | /* |
497 | * The common chunk check which could also work on super block sys chunk array. | 497 | * The common chunk check which could also work on super block sys chunk array. |
498 | * | 498 | * |
499 | * Return -EIO if anything is corrupted. | 499 | * Return -EUCLEAN if anything is corrupted. |
500 | * Return 0 if everything is OK. | 500 | * Return 0 if everything is OK. |
501 | */ | 501 | */ |
502 | int btrfs_check_chunk_valid(struct btrfs_fs_info *fs_info, | 502 | int btrfs_check_chunk_valid(struct btrfs_fs_info *fs_info, |
@@ -520,31 +520,31 @@ int btrfs_check_chunk_valid(struct btrfs_fs_info *fs_info, | |||
520 | if (!num_stripes) { | 520 | if (!num_stripes) { |
521 | chunk_err(fs_info, leaf, chunk, logical, | 521 | chunk_err(fs_info, leaf, chunk, logical, |
522 | "invalid chunk num_stripes, have %u", num_stripes); | 522 | "invalid chunk num_stripes, have %u", num_stripes); |
523 | return -EIO; | 523 | return -EUCLEAN; |
524 | } | 524 | } |
525 | if (!IS_ALIGNED(logical, fs_info->sectorsize)) { | 525 | if (!IS_ALIGNED(logical, fs_info->sectorsize)) { |
526 | chunk_err(fs_info, leaf, chunk, logical, | 526 | chunk_err(fs_info, leaf, chunk, logical, |
527 | "invalid chunk logical, have %llu should aligned to %u", | 527 | "invalid chunk logical, have %llu should aligned to %u", |
528 | logical, fs_info->sectorsize); | 528 | logical, fs_info->sectorsize); |
529 | return -EIO; | 529 | return -EUCLEAN; |
530 | } | 530 | } |
531 | if (btrfs_chunk_sector_size(leaf, chunk) != fs_info->sectorsize) { | 531 | if (btrfs_chunk_sector_size(leaf, chunk) != fs_info->sectorsize) { |
532 | chunk_err(fs_info, leaf, chunk, logical, | 532 | chunk_err(fs_info, leaf, chunk, logical, |
533 | "invalid chunk sectorsize, have %u expect %u", | 533 | "invalid chunk sectorsize, have %u expect %u", |
534 | btrfs_chunk_sector_size(leaf, chunk), | 534 | btrfs_chunk_sector_size(leaf, chunk), |
535 | fs_info->sectorsize); | 535 | fs_info->sectorsize); |
536 | return -EIO; | 536 | return -EUCLEAN; |
537 | } | 537 | } |
538 | if (!length || !IS_ALIGNED(length, fs_info->sectorsize)) { | 538 | if (!length || !IS_ALIGNED(length, fs_info->sectorsize)) { |
539 | chunk_err(fs_info, leaf, chunk, logical, | 539 | chunk_err(fs_info, leaf, chunk, logical, |
540 | "invalid chunk length, have %llu", length); | 540 | "invalid chunk length, have %llu", length); |
541 | return -EIO; | 541 | return -EUCLEAN; |
542 | } | 542 | } |
543 | if (!is_power_of_2(stripe_len) || stripe_len != BTRFS_STRIPE_LEN) { | 543 | if (!is_power_of_2(stripe_len) || stripe_len != BTRFS_STRIPE_LEN) { |
544 | chunk_err(fs_info, leaf, chunk, logical, | 544 | chunk_err(fs_info, leaf, chunk, logical, |
545 | "invalid chunk stripe length: %llu", | 545 | "invalid chunk stripe length: %llu", |
546 | stripe_len); | 546 | stripe_len); |
547 | return -EIO; | 547 | return -EUCLEAN; |
548 | } | 548 | } |
549 | if (~(BTRFS_BLOCK_GROUP_TYPE_MASK | BTRFS_BLOCK_GROUP_PROFILE_MASK) & | 549 | if (~(BTRFS_BLOCK_GROUP_TYPE_MASK | BTRFS_BLOCK_GROUP_PROFILE_MASK) & |
550 | type) { | 550 | type) { |
@@ -553,14 +553,14 @@ int btrfs_check_chunk_valid(struct btrfs_fs_info *fs_info, | |||
553 | ~(BTRFS_BLOCK_GROUP_TYPE_MASK | | 553 | ~(BTRFS_BLOCK_GROUP_TYPE_MASK | |
554 | BTRFS_BLOCK_GROUP_PROFILE_MASK) & | 554 | BTRFS_BLOCK_GROUP_PROFILE_MASK) & |
555 | btrfs_chunk_type(leaf, chunk)); | 555 | btrfs_chunk_type(leaf, chunk)); |
556 | return -EIO; | 556 | return -EUCLEAN; |
557 | } | 557 | } |
558 | 558 | ||
559 | if ((type & BTRFS_BLOCK_GROUP_TYPE_MASK) == 0) { | 559 | if ((type & BTRFS_BLOCK_GROUP_TYPE_MASK) == 0) { |
560 | chunk_err(fs_info, leaf, chunk, logical, | 560 | chunk_err(fs_info, leaf, chunk, logical, |
561 | "missing chunk type flag, have 0x%llx one bit must be set in 0x%llx", | 561 | "missing chunk type flag, have 0x%llx one bit must be set in 0x%llx", |
562 | type, BTRFS_BLOCK_GROUP_TYPE_MASK); | 562 | type, BTRFS_BLOCK_GROUP_TYPE_MASK); |
563 | return -EIO; | 563 | return -EUCLEAN; |
564 | } | 564 | } |
565 | 565 | ||
566 | if ((type & BTRFS_BLOCK_GROUP_SYSTEM) && | 566 | if ((type & BTRFS_BLOCK_GROUP_SYSTEM) && |
@@ -568,7 +568,7 @@ int btrfs_check_chunk_valid(struct btrfs_fs_info *fs_info, | |||
568 | chunk_err(fs_info, leaf, chunk, logical, | 568 | chunk_err(fs_info, leaf, chunk, logical, |
569 | "system chunk with data or metadata type: 0x%llx", | 569 | "system chunk with data or metadata type: 0x%llx", |
570 | type); | 570 | type); |
571 | return -EIO; | 571 | return -EUCLEAN; |
572 | } | 572 | } |
573 | 573 | ||
574 | features = btrfs_super_incompat_flags(fs_info->super_copy); | 574 | features = btrfs_super_incompat_flags(fs_info->super_copy); |
@@ -580,7 +580,7 @@ int btrfs_check_chunk_valid(struct btrfs_fs_info *fs_info, | |||
580 | (type & BTRFS_BLOCK_GROUP_DATA)) { | 580 | (type & BTRFS_BLOCK_GROUP_DATA)) { |
581 | chunk_err(fs_info, leaf, chunk, logical, | 581 | chunk_err(fs_info, leaf, chunk, logical, |
582 | "mixed chunk type in non-mixed mode: 0x%llx", type); | 582 | "mixed chunk type in non-mixed mode: 0x%llx", type); |
583 | return -EIO; | 583 | return -EUCLEAN; |
584 | } | 584 | } |
585 | } | 585 | } |
586 | 586 | ||
@@ -594,7 +594,7 @@ int btrfs_check_chunk_valid(struct btrfs_fs_info *fs_info, | |||
594 | "invalid num_stripes:sub_stripes %u:%u for profile %llu", | 594 | "invalid num_stripes:sub_stripes %u:%u for profile %llu", |
595 | num_stripes, sub_stripes, | 595 | num_stripes, sub_stripes, |
596 | type & BTRFS_BLOCK_GROUP_PROFILE_MASK); | 596 | type & BTRFS_BLOCK_GROUP_PROFILE_MASK); |
597 | return -EIO; | 597 | return -EUCLEAN; |
598 | } | 598 | } |
599 | 599 | ||
600 | return 0; | 600 | return 0; |