]> git.ipfire.org Git - thirdparty/xfsprogs-dev.git/commitdiff
resync endianess handling in xfsprogs with the kernel
authorChristoph Hellwig <hch@sgi.com>
Tue, 7 Jun 2005 14:56:07 +0000 (14:56 +0000)
committerChristoph Hellwig <hch@sgi.com>
Tue, 7 Jun 2005 14:56:07 +0000 (14:56 +0000)
db/check.c
db/frag.c
include/libxfs.h
include/xfs_ialloc_btree.h
libxfs/xfs.h
libxfs/xfs_bmap_btree.c
libxfs/xfs_ialloc.c
repair/incore.h
repair/phase7.c
repair/scan.c

index a83584ba911de80b1d1638ad30fa391bea0346b1..861e64b6851bd654ec7da144c252223328ad817e 100644 (file)
@@ -4448,7 +4448,7 @@ scanfunc_ino(
                                continue;
                        }
                        for (j = 0, nfree = 0; j < XFS_INODES_PER_CHUNK; j++) {
-                               if ((isfree = XFS_INOBT_IS_FREE(&rp[i], j, ARCH_CONVERT)))
+                               if ((isfree = XFS_INOBT_IS_FREE_DISK(&rp[i], j)))
                                        nfree++;
                                process_inode(agf, agino + j,
                                        (xfs_dinode_t *)((char *)iocur_top->data + ((off + j) << mp->m_sb.sb_inodelog)),
index 0a21dd97de8b1457ae148a7f58975276f57e4b3a..47a2614e7f1377e2dfe0916ad0917db4fd21d201 100644 (file)
--- a/db/frag.c
+++ b/db/frag.c
@@ -518,7 +518,7 @@ scanfunc_ino(
                                        &dip->di_core, &tdic, 1);
                                memcpy(&dip->di_core, &tdic, sizeof(xfs_dinode_core_t));
 
-                               if (XFS_INOBT_IS_FREE(&rp[i], j, ARCH_CONVERT))
+                               if (XFS_INOBT_IS_FREE_DISK(&rp[i], j))
                                        continue;
                                process_inode(agf, agino + j,
                                        (xfs_dinode_t *)((char *)iocur_top->data + ((off + j) << mp->m_sb.sb_inodelog)));
index 9820de5d5629dd6fe3c25e3616dd719244899b29..153cec575077c74b49b71ba6762ad36b1487c84d 100644 (file)
@@ -455,7 +455,7 @@ extern xfs_dahash_t libxfs_da_hashname (uchar_t *, int);
 extern int     libxfs_attr_leaf_newentsize (xfs_da_args_t *, int, int *);
 
 extern void    libxfs_bmbt_get_all (xfs_bmbt_rec_t *, xfs_bmbt_irec_t *);
-#if ARCH_CONVERT != ARCH_NOCONVERT
+#if __BYTE_ORDER != __BIG_ENDIAN
 extern void    libxfs_bmbt_disk_get_all (xfs_bmbt_rec_t *, xfs_bmbt_irec_t *);
 #else
 # define libxfs_bmbt_disk_get_all(r,s) libxfs_bmbt_get_all(r,s)
index 1232daf36a6641d79bfb24fbe9fdb972fc366951..44be188674a6a0e405b40559deec84d2aa4dd75c 100644 (file)
@@ -100,22 +100,25 @@ xfs_inofree_t xfs_inobt_mask(int i);
 #endif
 #if XFS_WANT_FUNCS || (XFS_WANT_SPACE && XFSSO_XFS_INOBT_IS_FREE)
 int xfs_inobt_is_free(xfs_inobt_rec_t *rp, int i);
-#define        XFS_INOBT_IS_FREE(rp,i) xfs_inobt_is_free(rp,i)
+#define        XFS_INOBT_IS_FREE(rp,i)         xfs_inobt_is_free(rp,i)
+#define        XFS_INOBT_IS_FREE_DISK(rp,i)    xfs_inobt_is_free_disk(rp,i)
 #else
-#define        XFS_INOBT_IS_FREE(rp,i,arch)    ((INT_GET((rp)->ir_free, arch) \
-                                        & XFS_INOBT_MASK(i)) != 0)
+#define        XFS_INOBT_IS_FREE(rp,i) \
+       (((rp)->ir_free & XFS_INOBT_MASK(i)) != 0)
+#define XFS_INOBT_IS_FREE_DISK(rp,i) \
+       ((INT_GET((rp)->ir_free, ARCH_CONVERT) & XFS_INOBT_MASK(i)) != 0)
 #endif
 #if XFS_WANT_FUNCS || (XFS_WANT_SPACE && XFSSO_XFS_INOBT_SET_FREE)
 void xfs_inobt_set_free(xfs_inobt_rec_t *rp, int i);
 #define        XFS_INOBT_SET_FREE(rp,i)        xfs_inobt_set_free(rp,i)
 #else
-#define        XFS_INOBT_SET_FREE(rp,i,arch)   (INT_MOD_EXPR((rp)->ir_free, arch, |= XFS_INOBT_MASK(i)))
+#define        XFS_INOBT_SET_FREE(rp,i)        ((rp)->ir_free |= XFS_INOBT_MASK(i))
 #endif
 #if XFS_WANT_FUNCS || (XFS_WANT_SPACE && XFSSO_XFS_INOBT_CLR_FREE)
 void xfs_inobt_clr_free(xfs_inobt_rec_t *rp, int i);
 #define        XFS_INOBT_CLR_FREE(rp,i)        xfs_inobt_clr_free(rp,i)
 #else
-#define        XFS_INOBT_CLR_FREE(rp,i,arch)   (INT_MOD_EXPR((rp)->ir_free, arch, &= ~XFS_INOBT_MASK(i)))
+#define        XFS_INOBT_CLR_FREE(rp,i)        ((rp)->ir_free &= ~XFS_INOBT_MASK(i))
 #endif
 
 /*
index bdffc7f8752c290204f531c9bacf3aaef7640574..78d6add80d09c5bec25b26aba41d91fc5ebd4a10 100644 (file)
 
 #define xfs_xlatesb                    libxfs_xlate_sb
 #define xfs_xlate_dinode_core          libxfs_xlate_dinode_core
-#if ARCH_CONVERT != ARCH_NOCONVERT
 #define xfs_bmbt_get_all               libxfs_bmbt_get_all
+#if __BYTE_ORDER != __BIG_ENDIAN
 #define xfs_bmbt_disk_get_all          libxfs_bmbt_disk_get_all
 #else
-#define xfs_bmbt_get_all               libxfs_bmbt_get_all
 #define xfs_bmbt_disk_get_all          libxfs_bmbt_get_all
 #endif
 #define xfs_da_hashname                        libxfs_da_hashname
@@ -487,7 +486,7 @@ int  xfs_bmbt_update (struct xfs_btree_cur *, xfs_fileoff_t, xfs_fsblock_t,
                        xfs_filblks_t, xfs_exntst_t);
 void xfs_bmbt_to_bmdr (xfs_bmbt_block_t *, int, xfs_bmdr_block_t *, int);
 void xfs_bmdr_to_bmbt (xfs_bmdr_block_t *, int, xfs_bmbt_block_t *, int);
-#if ARCH_CONVERT != ARCH_NOCONVERT
+#if __BYTE_ORDER != __BIG_ENDIAN
 xfs_fileoff_t xfs_bmbt_disk_get_startoff (xfs_bmbt_rec_t *);
 void xfs_bmbt_disk_set_all (xfs_bmbt_rec_t *, xfs_bmbt_irec_t *);
 void xfs_bmbt_disk_set_allf (xfs_bmbt_rec_t *, xfs_fileoff_t, xfs_fsblock_t,
index 45754a5c64a902e56ba0d42adb22f251f2027aea..4815460a52fb36b094d2046e3239eaa81c600031 100644 (file)
@@ -1625,7 +1625,7 @@ xfs_bmbt_get_block(
 }
 
 /*
- * Extract the blockcount field from a bmap extent record.
+ * Extract the blockcount field from an in memory bmap extent record.
  */
 xfs_filblks_t
 xfs_bmbt_get_blockcount(
@@ -1635,7 +1635,7 @@ xfs_bmbt_get_blockcount(
 }
 
 /*
- * Extract the startblock field from a bmap extent record.
+ * Extract the startblock field from an in memory bmap extent record.
  */
 xfs_fsblock_t
 xfs_bmbt_get_startblock(
@@ -1659,7 +1659,7 @@ xfs_bmbt_get_startblock(
 }
 
 /*
- * Extract the startoff field from a bmap extent record.
+ * Extract the startoff field from an in memory bmap extent record.
  */
 xfs_fileoff_t
 xfs_bmbt_get_startoff(
@@ -1680,7 +1680,7 @@ xfs_bmbt_get_state(
                                ext_flag);
 }
 
-#if ARCH_CONVERT != ARCH_NOCONVERT
+#if __BYTE_ORDER != __BIG_ENDIAN
 /* Endian flipping versions of the bmbt extraction functions */
 void
 xfs_bmbt_disk_get_all(
@@ -2208,7 +2208,7 @@ xfs_bmbt_set_allf(
 #endif /* XFS_BIG_BLKNOS */
 }
 
-#if ARCH_CONVERT != ARCH_NOCONVERT
+#if __BYTE_ORDER != __BIG_ENDIAN
 /*
  * Set all the fields in a bmap extent record from the uncompressed form.
  */
index 4671bcc3655086748bd084deabb0509cdc37c79d..e421c0440d4eaab6dfd4453a58c1bf6789c53251 100644 (file)
@@ -852,7 +852,7 @@ nextag:
        ASSERT((XFS_AGINO_TO_OFFSET(mp, rec.ir_startino) %
                                   XFS_INODES_PER_CHUNK) == 0);
        ino = XFS_AGINO_TO_INO(mp, agno, rec.ir_startino + offset);
-       XFS_INOBT_CLR_FREE(&rec, offset, ARCH_NOCONVERT);
+       XFS_INOBT_CLR_FREE(&rec, offset);
        rec.ir_freecount--;
        if ((error = xfs_inobt_update(cur, rec.ir_startino, rec.ir_freecount,
                        rec.ir_free)))
index 5fa7f5e5bf9e44c459569fee1539afa682978070..a83bdabed4c9f015d7150ceb5358590ff66707ee 100644 (file)
@@ -478,17 +478,17 @@ void                      clear_uncertain_ino_cache(xfs_agnumber_t agno);
  */
 #define set_inode_free(ino_rec, ino_offset) \
        XFS_INOCF_SET_CF((ino_rec), (ino_offset)), \
-       XFS_INOBT_SET_FREE((ino_rec), (ino_offset), ARCH_NOCONVERT)
+       XFS_INOBT_SET_FREE((ino_rec), (ino_offset))
 
 #define set_inode_used(ino_rec, ino_offset) \
        XFS_INOCF_SET_CF((ino_rec), (ino_offset)), \
-       XFS_INOBT_CLR_FREE((ino_rec), (ino_offset), ARCH_NOCONVERT)
+       XFS_INOBT_CLR_FREE((ino_rec), (ino_offset))
 
 #define is_inode_used(ino_rec, ino_offset)     \
-       !XFS_INOBT_IS_FREE((ino_rec), (ino_offset), ARCH_NOCONVERT)
+       !XFS_INOBT_IS_FREE((ino_rec), (ino_offset))
 
 #define is_inode_free(ino_rec, ino_offset)     \
-       XFS_INOBT_IS_FREE((ino_rec), (ino_offset), ARCH_NOCONVERT)
+       XFS_INOBT_IS_FREE((ino_rec), (ino_offset))
 
 /*
  * add_inode_reached() is set on inode I only if I has been reached
index 70cb0323e27652aba80f587a42467b25155a2d14..96949848a3cd821d3f4bc4080bebbae6553b8902 100644 (file)
@@ -48,12 +48,11 @@ set_nlinks(xfs_dinode_core_t        *dinoc,
                int             *dirty)
 {
        if (!no_modify)  {
-               if (INT_GET(dinoc->di_nlink, ARCH_NOCONVERT) != nrefs)  {
+               if (dinoc->di_nlink != nrefs)  {
                        *dirty = 1;
                        do_warn(
                _("resetting inode %llu nlinks from %d to %d\n"),
-                               ino, INT_GET(dinoc->di_nlink, ARCH_NOCONVERT),
-                               nrefs);
+                               ino, dinoc->di_nlink, nrefs);
 
                        if (nrefs > XFS_MAXLINK_1)  {
                                ASSERT(fs_inode_nlink);
@@ -62,14 +61,13 @@ _("nlinks %d will overflow v1 ino, ino %llu will be converted to version 2\n"),
                                        nrefs, ino);
 
                        }
-                       INT_SET(dinoc->di_nlink, ARCH_NOCONVERT, nrefs);
+                       dinoc->di_nlink = nrefs;
                }
        } else  {
-               if (INT_GET(dinoc->di_nlink, ARCH_NOCONVERT) != nrefs)
+               if (dinoc->di_nlink != nrefs)
                        do_warn(
                        _("would have reset inode %llu nlinks from %d to %d\n"),
-                               ino, INT_GET(dinoc->di_nlink, ARCH_NOCONVERT),
-                               nrefs);
+                               ino, dinoc->di_nlink, nrefs);
        }
 }
 
index 9400b5b62e7b81beeffa842ce8112c637ace687f..e50ea3bc6f5853ed84824ddd4711c58e539452ed 100644 (file)
@@ -1028,7 +1028,7 @@ _("inode rec for ino %llu (%d/%d) overlaps existing rec (start %d/%d)\n"),
                         * inode tree.
                         */
                        if (!suspect)  {
-                               if (XFS_INOBT_IS_FREE(&rp[i], 0, ARCH_CONVERT)) {
+                               if (XFS_INOBT_IS_FREE_DISK(&rp[i], 0)) {
                                        nfree++;
                                        ino_rec = set_inode_free_alloc(agno,
                                                                        ino);
@@ -1037,7 +1037,7 @@ _("inode rec for ino %llu (%d/%d) overlaps existing rec (start %d/%d)\n"),
                                                                        ino);
                                }
                                for (j = 1; j < XFS_INODES_PER_CHUNK; j++) {
-                                       if (XFS_INOBT_IS_FREE(&rp[i], j, ARCH_CONVERT)) {
+                                       if (XFS_INOBT_IS_FREE_DISK(&rp[i], j)) {
                                                nfree++;
                                                set_inode_free(ino_rec, j);
                                        } else  {
@@ -1046,7 +1046,7 @@ _("inode rec for ino %llu (%d/%d) overlaps existing rec (start %d/%d)\n"),
                                }
                        } else  {
                                for (j = 0; j < XFS_INODES_PER_CHUNK; j++) {
-                                       if (XFS_INOBT_IS_FREE(&rp[i], j, ARCH_CONVERT)) {
+                                       if (XFS_INOBT_IS_FREE_DISK(&rp[i], j)) {
                                                nfree++;
                                                add_aginode_uncertain(agno,
                                                                ino + j, 1);