]> git.ipfire.org Git - thirdparty/xfsprogs-dev.git/commitdiff
Cleanup xfs_repair error reporting slightly.
authorNathan Scott <nathans@sgi.com>
Sat, 17 Dec 2005 14:08:50 +0000 (14:08 +0000)
committerNathan Scott <nathans@sgi.com>
Sat, 17 Dec 2005 14:08:50 +0000 (14:08 +0000)
Merge of master-melb:xfs-cmds:24862a by kenmcd.

libxfs/xfs.h
libxfs/xfs_bmap.c
libxfs/xfs_inode.c

index 63c9f67f0fb114aed4408cf07227aed77fb6aac2..8b32a18be9f52795d07820afc565cb997c0878bd 100644 (file)
@@ -317,11 +317,17 @@ typedef struct { dev_t dev; } xfs_buftarg_t;
      memmove((ptr), &__tmp, sizeof(*(ptr)));   \
      (void)0; })
 
+#define REPAIR_MESSAGE _("  This is a bug.\n"  \
+                        "Please report it to linux-xfs@oss.sgi.com.\n")
 #if (__GNUC__ < 2) || ((__GNUC__ == 2) && (__GNUC_MINOR__ <= 95))
+# define xfs_fs_repair_cmn_err(a,b,msg,args...)        \
+       ( fprintf(stderr, msg, ## args), fprintf(stderr, REPAIR_MESSAGE) )
 # define xfs_fs_cmn_err(a,b,msg,args...)( fprintf(stderr, msg, ## args) )
 # define cmn_err(a,msg,args...)                ( fprintf(stderr, msg, ## args) )
 # define printk(msg,args...)           ( fprintf(stderr, msg, ## args) )
 #else
+# define xfs_fs_repair_cmn_err(a,b,...)        \
+       ( fprintf(stderr, __VA_ARGS__), fprintf(stderr, REPAIR_MESSAGE) )
 # define xfs_fs_cmn_err(a,b,...)       ( fprintf(stderr, __VA_ARGS__) )
 # define cmn_err(a,...)                        ( fprintf(stderr, __VA_ARGS__) )
 # define printk(...)                   ( fprintf(stderr, __VA_ARGS__) )
index f493f29fd2bb4c4dce9a9cad89f57012bb920595..3fcc1b60ed635d1beb6aa8853c84c7f897bec112 100644 (file)
@@ -3808,8 +3808,8 @@ xfs_bmap_read_extents(
                num_recs = be16_to_cpu(block->bb_numrecs);
                if (unlikely(i + num_recs > room)) {
                        ASSERT(i + num_recs <= room);
-                       xfs_fs_cmn_err(CE_WARN, ip->i_mount,
-                               "corrupt dinode %Lu, (btree extents).  Unmount and run xfs_repair.",
+                       xfs_fs_repair_cmn_err(CE_WARN, ip->i_mount,
+                               "corrupt dinode %Lu, (btree extents).",
                                (unsigned long long) ip->i_ino);
                        XFS_ERROR_REPORT("xfs_bmap_read_extents(1)",
                                         XFS_ERRLEVEL_LOW,
index 1fc8b51fe84ee354e07e372f6819baa7541f4119..a4586128621086107d2b7638d0f4c885535d6653 100644 (file)
@@ -226,9 +226,8 @@ xfs_iformat(
            INT_GET(dip->di_core.di_nextents, ARCH_CONVERT) +
                INT_GET(dip->di_core.di_anextents, ARCH_CONVERT) >
            INT_GET(dip->di_core.di_nblocks, ARCH_CONVERT))) {
-               xfs_fs_cmn_err(CE_WARN, ip->i_mount,
-                       "corrupt dinode %Lu, extent total = %d, nblocks = %Lu."
-                       "  Unmount and run xfs_repair.",
+               xfs_fs_repair_cmn_err(CE_WARN, ip->i_mount,
+                       "corrupt dinode %Lu, extent total = %d, nblocks = %Lu.",
                        (unsigned long long)ip->i_ino,
                        (int)(INT_GET(dip->di_core.di_nextents, ARCH_CONVERT)
                            + INT_GET(dip->di_core.di_anextents, ARCH_CONVERT)),
@@ -240,9 +239,8 @@ xfs_iformat(
        }
 
        if (unlikely(INT_GET(dip->di_core.di_forkoff, ARCH_CONVERT) > ip->i_mount->m_sb.sb_inodesize)) {
-               xfs_fs_cmn_err(CE_WARN, ip->i_mount,
-                       "corrupt dinode %Lu, forkoff = 0x%x."
-                       "  Unmount and run xfs_repair.",
+               xfs_fs_repair_cmn_err(CE_WARN, ip->i_mount,
+                       "corrupt dinode %Lu, forkoff = 0x%x.",
                        (unsigned long long)ip->i_ino,
                        (int)(INT_GET(dip->di_core.di_forkoff, ARCH_CONVERT)));
                XFS_CORRUPTION_ERROR("xfs_iformat(2)", XFS_ERRLEVEL_LOW,
@@ -273,8 +271,9 @@ xfs_iformat(
                         * no local regular files yet
                         */
                        if (unlikely((INT_GET(dip->di_core.di_mode, ARCH_CONVERT) & S_IFMT) == S_IFREG)) {
-                               xfs_fs_cmn_err(CE_WARN, ip->i_mount,
-                                       "corrupt inode (local format for regular file) %Lu.  Unmount and run xfs_repair.",
+                               xfs_fs_repair_cmn_err(CE_WARN, ip->i_mount,
+                                       "corrupt inode %Lu "
+                                       "(local format for regular file).",
                                        (unsigned long long) ip->i_ino);
                                XFS_CORRUPTION_ERROR("xfs_iformat(4)",
                                                     XFS_ERRLEVEL_LOW,
@@ -284,8 +283,9 @@ xfs_iformat(
 
                        di_size = INT_GET(dip->di_core.di_size, ARCH_CONVERT);
                        if (unlikely(di_size > XFS_DFORK_DSIZE(dip, ip->i_mount))) {
-                               xfs_fs_cmn_err(CE_WARN, ip->i_mount,
-                                       "corrupt inode %Lu (bad size %Ld for local inode).  Unmount and run xfs_repair.",
+                               xfs_fs_repair_cmn_err(CE_WARN, ip->i_mount,
+                                       "corrupt inode %Lu "
+                                       "(bad size %Ld for local inode).",
                                        (unsigned long long) ip->i_ino,
                                        (long long) di_size);
                                XFS_CORRUPTION_ERROR("xfs_iformat(5)",
@@ -373,8 +373,9 @@ xfs_iformat_local(
         * kmem_alloc() or memcpy() below.
         */
        if (unlikely(size > XFS_DFORK_SIZE(dip, ip->i_mount, whichfork))) {
-               xfs_fs_cmn_err(CE_WARN, ip->i_mount,
-                       "corrupt inode %Lu (bad size %d for local fork, size = %d).  Unmount and run xfs_repair.",
+               xfs_fs_repair_cmn_err(CE_WARN, ip->i_mount,
+                       "corrupt inode %Lu "
+                       "(bad size %d for local fork, size = %d).",
                        (unsigned long long) ip->i_ino, size,
                        XFS_DFORK_SIZE(dip, ip->i_mount, whichfork));
                XFS_CORRUPTION_ERROR("xfs_iformat_local", XFS_ERRLEVEL_LOW,
@@ -432,8 +433,8 @@ xfs_iformat_extents(
         * kmem_alloc() or memcpy() below.
         */
        if (unlikely(size < 0 || size > XFS_DFORK_SIZE(dip, ip->i_mount, whichfork))) {
-               xfs_fs_cmn_err(CE_WARN, ip->i_mount,
-                       "corrupt inode %Lu ((a)extents = %d).  Unmount and run xfs_repair.",
+               xfs_fs_repair_cmn_err(CE_WARN, ip->i_mount,
+                       "corrupt inode %Lu ((a)extents = %d).",
                        (unsigned long long) ip->i_ino, nex);
                XFS_CORRUPTION_ERROR("xfs_iformat_extents(1)", XFS_ERRLEVEL_LOW,
                                     ip->i_mount, dip);
@@ -514,8 +515,8 @@ xfs_iformat_btree(
            || XFS_BMDR_SPACE_CALC(nrecs) >
                        XFS_DFORK_SIZE(dip, ip->i_mount, whichfork)
            || XFS_IFORK_NEXTENTS(ip, whichfork) > ip->i_d.di_nblocks)) {
-               xfs_fs_cmn_err(CE_WARN, ip->i_mount,
-                       "corrupt inode %Lu (btree).  Unmount and run xfs_repair.",
+               xfs_fs_repair_cmn_err(CE_WARN, ip->i_mount,
+                       "corrupt inode %Lu (btree).",
                        (unsigned long long) ip->i_ino);
                XFS_ERROR_REPORT("xfs_iformat_btree", XFS_ERRLEVEL_LOW,
                                 ip->i_mount);