diff options
Diffstat (limited to 'fs/xfs/xfs_inode.c')
-rw-r--r-- | fs/xfs/xfs_inode.c | 33 |
1 files changed, 17 insertions, 16 deletions
diff --git a/fs/xfs/xfs_inode.c b/fs/xfs/xfs_inode.c index 6b7ac8bdcac2..1d7f5a7e063e 100644 --- a/fs/xfs/xfs_inode.c +++ b/fs/xfs/xfs_inode.c | |||
@@ -404,9 +404,8 @@ xfs_iformat( | |||
404 | INT_GET(dip->di_core.di_nextents, ARCH_CONVERT) + | 404 | INT_GET(dip->di_core.di_nextents, ARCH_CONVERT) + |
405 | INT_GET(dip->di_core.di_anextents, ARCH_CONVERT) > | 405 | INT_GET(dip->di_core.di_anextents, ARCH_CONVERT) > |
406 | INT_GET(dip->di_core.di_nblocks, ARCH_CONVERT))) { | 406 | INT_GET(dip->di_core.di_nblocks, ARCH_CONVERT))) { |
407 | xfs_fs_cmn_err(CE_WARN, ip->i_mount, | 407 | xfs_fs_repair_cmn_err(CE_WARN, ip->i_mount, |
408 | "corrupt dinode %Lu, extent total = %d, nblocks = %Lu." | 408 | "corrupt dinode %Lu, extent total = %d, nblocks = %Lu.", |
409 | " Unmount and run xfs_repair.", | ||
410 | (unsigned long long)ip->i_ino, | 409 | (unsigned long long)ip->i_ino, |
411 | (int)(INT_GET(dip->di_core.di_nextents, ARCH_CONVERT) | 410 | (int)(INT_GET(dip->di_core.di_nextents, ARCH_CONVERT) |
412 | + INT_GET(dip->di_core.di_anextents, ARCH_CONVERT)), | 411 | + INT_GET(dip->di_core.di_anextents, ARCH_CONVERT)), |
@@ -418,9 +417,8 @@ xfs_iformat( | |||
418 | } | 417 | } |
419 | 418 | ||
420 | if (unlikely(INT_GET(dip->di_core.di_forkoff, ARCH_CONVERT) > ip->i_mount->m_sb.sb_inodesize)) { | 419 | if (unlikely(INT_GET(dip->di_core.di_forkoff, ARCH_CONVERT) > ip->i_mount->m_sb.sb_inodesize)) { |
421 | xfs_fs_cmn_err(CE_WARN, ip->i_mount, | 420 | xfs_fs_repair_cmn_err(CE_WARN, ip->i_mount, |
422 | "corrupt dinode %Lu, forkoff = 0x%x." | 421 | "corrupt dinode %Lu, forkoff = 0x%x.", |
423 | " Unmount and run xfs_repair.", | ||
424 | (unsigned long long)ip->i_ino, | 422 | (unsigned long long)ip->i_ino, |
425 | (int)(INT_GET(dip->di_core.di_forkoff, ARCH_CONVERT))); | 423 | (int)(INT_GET(dip->di_core.di_forkoff, ARCH_CONVERT))); |
426 | XFS_CORRUPTION_ERROR("xfs_iformat(2)", XFS_ERRLEVEL_LOW, | 424 | XFS_CORRUPTION_ERROR("xfs_iformat(2)", XFS_ERRLEVEL_LOW, |
@@ -451,8 +449,9 @@ xfs_iformat( | |||
451 | * no local regular files yet | 449 | * no local regular files yet |
452 | */ | 450 | */ |
453 | if (unlikely((INT_GET(dip->di_core.di_mode, ARCH_CONVERT) & S_IFMT) == S_IFREG)) { | 451 | if (unlikely((INT_GET(dip->di_core.di_mode, ARCH_CONVERT) & S_IFMT) == S_IFREG)) { |
454 | xfs_fs_cmn_err(CE_WARN, ip->i_mount, | 452 | xfs_fs_repair_cmn_err(CE_WARN, ip->i_mount, |
455 | "corrupt inode (local format for regular file) %Lu. Unmount and run xfs_repair.", | 453 | "corrupt inode %Lu " |
454 | "(local format for regular file).", | ||
456 | (unsigned long long) ip->i_ino); | 455 | (unsigned long long) ip->i_ino); |
457 | XFS_CORRUPTION_ERROR("xfs_iformat(4)", | 456 | XFS_CORRUPTION_ERROR("xfs_iformat(4)", |
458 | XFS_ERRLEVEL_LOW, | 457 | XFS_ERRLEVEL_LOW, |
@@ -462,8 +461,9 @@ xfs_iformat( | |||
462 | 461 | ||
463 | di_size = INT_GET(dip->di_core.di_size, ARCH_CONVERT); | 462 | di_size = INT_GET(dip->di_core.di_size, ARCH_CONVERT); |
464 | if (unlikely(di_size > XFS_DFORK_DSIZE(dip, ip->i_mount))) { | 463 | if (unlikely(di_size > XFS_DFORK_DSIZE(dip, ip->i_mount))) { |
465 | xfs_fs_cmn_err(CE_WARN, ip->i_mount, | 464 | xfs_fs_repair_cmn_err(CE_WARN, ip->i_mount, |
466 | "corrupt inode %Lu (bad size %Ld for local inode). Unmount and run xfs_repair.", | 465 | "corrupt inode %Lu " |
466 | "(bad size %Ld for local inode).", | ||
467 | (unsigned long long) ip->i_ino, | 467 | (unsigned long long) ip->i_ino, |
468 | (long long) di_size); | 468 | (long long) di_size); |
469 | XFS_CORRUPTION_ERROR("xfs_iformat(5)", | 469 | XFS_CORRUPTION_ERROR("xfs_iformat(5)", |
@@ -551,8 +551,9 @@ xfs_iformat_local( | |||
551 | * kmem_alloc() or memcpy() below. | 551 | * kmem_alloc() or memcpy() below. |
552 | */ | 552 | */ |
553 | if (unlikely(size > XFS_DFORK_SIZE(dip, ip->i_mount, whichfork))) { | 553 | if (unlikely(size > XFS_DFORK_SIZE(dip, ip->i_mount, whichfork))) { |
554 | xfs_fs_cmn_err(CE_WARN, ip->i_mount, | 554 | xfs_fs_repair_cmn_err(CE_WARN, ip->i_mount, |
555 | "corrupt inode %Lu (bad size %d for local fork, size = %d). Unmount and run xfs_repair.", | 555 | "corrupt inode %Lu " |
556 | "(bad size %d for local fork, size = %d).", | ||
556 | (unsigned long long) ip->i_ino, size, | 557 | (unsigned long long) ip->i_ino, size, |
557 | XFS_DFORK_SIZE(dip, ip->i_mount, whichfork)); | 558 | XFS_DFORK_SIZE(dip, ip->i_mount, whichfork)); |
558 | XFS_CORRUPTION_ERROR("xfs_iformat_local", XFS_ERRLEVEL_LOW, | 559 | XFS_CORRUPTION_ERROR("xfs_iformat_local", XFS_ERRLEVEL_LOW, |
@@ -610,8 +611,8 @@ xfs_iformat_extents( | |||
610 | * kmem_alloc() or memcpy() below. | 611 | * kmem_alloc() or memcpy() below. |
611 | */ | 612 | */ |
612 | if (unlikely(size < 0 || size > XFS_DFORK_SIZE(dip, ip->i_mount, whichfork))) { | 613 | if (unlikely(size < 0 || size > XFS_DFORK_SIZE(dip, ip->i_mount, whichfork))) { |
613 | xfs_fs_cmn_err(CE_WARN, ip->i_mount, | 614 | xfs_fs_repair_cmn_err(CE_WARN, ip->i_mount, |
614 | "corrupt inode %Lu ((a)extents = %d). Unmount and run xfs_repair.", | 615 | "corrupt inode %Lu ((a)extents = %d).", |
615 | (unsigned long long) ip->i_ino, nex); | 616 | (unsigned long long) ip->i_ino, nex); |
616 | XFS_CORRUPTION_ERROR("xfs_iformat_extents(1)", XFS_ERRLEVEL_LOW, | 617 | XFS_CORRUPTION_ERROR("xfs_iformat_extents(1)", XFS_ERRLEVEL_LOW, |
617 | ip->i_mount, dip); | 618 | ip->i_mount, dip); |
@@ -692,8 +693,8 @@ xfs_iformat_btree( | |||
692 | || XFS_BMDR_SPACE_CALC(nrecs) > | 693 | || XFS_BMDR_SPACE_CALC(nrecs) > |
693 | XFS_DFORK_SIZE(dip, ip->i_mount, whichfork) | 694 | XFS_DFORK_SIZE(dip, ip->i_mount, whichfork) |
694 | || XFS_IFORK_NEXTENTS(ip, whichfork) > ip->i_d.di_nblocks)) { | 695 | || XFS_IFORK_NEXTENTS(ip, whichfork) > ip->i_d.di_nblocks)) { |
695 | xfs_fs_cmn_err(CE_WARN, ip->i_mount, | 696 | xfs_fs_repair_cmn_err(CE_WARN, ip->i_mount, |
696 | "corrupt inode %Lu (btree). Unmount and run xfs_repair.", | 697 | "corrupt inode %Lu (btree).", |
697 | (unsigned long long) ip->i_ino); | 698 | (unsigned long long) ip->i_ino); |
698 | XFS_ERROR_REPORT("xfs_iformat_btree", XFS_ERRLEVEL_LOW, | 699 | XFS_ERROR_REPORT("xfs_iformat_btree", XFS_ERRLEVEL_LOW, |
699 | ip->i_mount); | 700 | ip->i_mount); |