Merge branch 'for-linus' of git://git.kernel.dk/data/git/linux-2.6-block
[pandora-kernel.git] / fs / xfs / xfs_dir2_data.c
index 48b4906..f7c7992 100644 (file)
 #include "xfs_inum.h"
 #include "xfs_trans.h"
 #include "xfs_sb.h"
-#include "xfs_dir.h"
 #include "xfs_dir2.h"
 #include "xfs_dmapi.h"
 #include "xfs_mount.h"
 #include "xfs_da_btree.h"
 #include "xfs_bmap_btree.h"
-#include "xfs_dir_sf.h"
 #include "xfs_dir2_sf.h"
 #include "xfs_attr_sf.h"
 #include "xfs_dinode.h"
 #include "xfs_inode.h"
-#include "xfs_dir_leaf.h"
 #include "xfs_dir2_data.h"
 #include "xfs_dir2_leaf.h"
 #include "xfs_dir2_block.h"
@@ -110,7 +107,7 @@ xfs_dir2_data_check(
                 */
                if (be16_to_cpu(dup->freetag) == XFS_DIR2_DATA_FREE_TAG) {
                        ASSERT(lastfree == 0);
-                       ASSERT(INT_GET(*XFS_DIR2_DATA_UNUSED_TAG_P(dup), ARCH_CONVERT) ==
+                       ASSERT(be16_to_cpu(*XFS_DIR2_DATA_UNUSED_TAG_P(dup)) ==
                               (char *)dup - (char *)d);
                        dfp = xfs_dir2_data_freefind(d, dup);
                        if (dfp) {
@@ -133,8 +130,8 @@ xfs_dir2_data_check(
                 */
                dep = (xfs_dir2_data_entry_t *)p;
                ASSERT(dep->namelen != 0);
-               ASSERT(xfs_dir_ino_validate(mp, INT_GET(dep->inumber, ARCH_CONVERT)) == 0);
-               ASSERT(INT_GET(*XFS_DIR2_DATA_ENTRY_TAG_P(dep), ARCH_CONVERT) ==
+               ASSERT(xfs_dir_ino_validate(mp, be64_to_cpu(dep->inumber)) == 0);
+               ASSERT(be16_to_cpu(*XFS_DIR2_DATA_ENTRY_TAG_P(dep)) ==
                       (char *)dep - (char *)d);
                count++;
                lastfree = 0;
@@ -143,12 +140,12 @@ xfs_dir2_data_check(
                                (xfs_dir2_data_aoff_t)
                                ((char *)dep - (char *)d));
                        hash = xfs_da_hashname((char *)dep->name, dep->namelen);
-                       for (i = 0; i < INT_GET(btp->count, ARCH_CONVERT); i++) {
-                               if (INT_GET(lep[i].address, ARCH_CONVERT) == addr &&
-                                   INT_GET(lep[i].hashval, ARCH_CONVERT) == hash)
+                       for (i = 0; i < be32_to_cpu(btp->count); i++) {
+                               if (be32_to_cpu(lep[i].address) == addr &&
+                                   be32_to_cpu(lep[i].hashval) == hash)
                                        break;
                        }
-                       ASSERT(i < INT_GET(btp->count, ARCH_CONVERT));
+                       ASSERT(i < be32_to_cpu(btp->count));
                }
                p += XFS_DIR2_DATA_ENTSIZE(dep->namelen);
        }
@@ -157,14 +154,14 @@ xfs_dir2_data_check(
         */
        ASSERT(freeseen == 7);
        if (be32_to_cpu(d->hdr.magic) == XFS_DIR2_BLOCK_MAGIC) {
-               for (i = stale = 0; i < INT_GET(btp->count, ARCH_CONVERT); i++) {
-                       if (INT_GET(lep[i].address, ARCH_CONVERT) == XFS_DIR2_NULL_DATAPTR)
+               for (i = stale = 0; i < be32_to_cpu(btp->count); i++) {
+                       if (be32_to_cpu(lep[i].address) == XFS_DIR2_NULL_DATAPTR)
                                stale++;
                        if (i > 0)
-                               ASSERT(INT_GET(lep[i].hashval, ARCH_CONVERT) >= INT_GET(lep[i - 1].hashval, ARCH_CONVERT));
+                               ASSERT(be32_to_cpu(lep[i].hashval) >= be32_to_cpu(lep[i - 1].hashval));
                }
-               ASSERT(count == INT_GET(btp->count, ARCH_CONVERT) - INT_GET(btp->stale, ARCH_CONVERT));
-               ASSERT(stale == INT_GET(btp->stale, ARCH_CONVERT));
+               ASSERT(count == be32_to_cpu(btp->count) - be32_to_cpu(btp->stale));
+               ASSERT(stale == be32_to_cpu(btp->stale));
        }
 }
 #endif
@@ -366,7 +363,7 @@ xfs_dir2_data_freescan(
                 */
                if (be16_to_cpu(dup->freetag) == XFS_DIR2_DATA_FREE_TAG) {
                        ASSERT((char *)dup - (char *)d ==
-                              INT_GET(*XFS_DIR2_DATA_UNUSED_TAG_P(dup), ARCH_CONVERT));
+                              be16_to_cpu(*XFS_DIR2_DATA_UNUSED_TAG_P(dup)));
                        xfs_dir2_data_freeinsert(d, dup, loghead);
                        p += be16_to_cpu(dup->length);
                }
@@ -376,7 +373,7 @@ xfs_dir2_data_freescan(
                else {
                        dep = (xfs_dir2_data_entry_t *)p;
                        ASSERT((char *)dep - (char *)d ==
-                              INT_GET(*XFS_DIR2_DATA_ENTRY_TAG_P(dep), ARCH_CONVERT));
+                              be16_to_cpu(*XFS_DIR2_DATA_ENTRY_TAG_P(dep)));
                        p += XFS_DIR2_DATA_ENTSIZE(dep->namelen);
                }
        }
@@ -433,8 +430,7 @@ xfs_dir2_data_init(
        t=mp->m_dirblksize - (uint)sizeof(d->hdr);
        d->hdr.bestfree[0].length = cpu_to_be16(t);
        dup->length = cpu_to_be16(t);
-       INT_SET(*XFS_DIR2_DATA_UNUSED_TAG_P(dup), ARCH_CONVERT,
-               (xfs_dir2_data_off_t)((char *)dup - (char *)d));
+       *XFS_DIR2_DATA_UNUSED_TAG_P(dup) = cpu_to_be16((char *)dup - (char *)d);
        /*
         * Log it and return it.
         */
@@ -550,10 +546,10 @@ xfs_dir2_data_make_free(
         * the previous entry and see if it's free.
         */
        if (offset > sizeof(d->hdr)) {
-               xfs_dir2_data_off_t     *tagp;  /* tag just before us */
+               __be16                  *tagp;  /* tag just before us */
 
-               tagp = (xfs_dir2_data_off_t *)((char *)d + offset) - 1;
-               prevdup = (xfs_dir2_data_unused_t *)((char *)d + INT_GET(*tagp, ARCH_CONVERT));
+               tagp = (__be16 *)((char *)d + offset) - 1;
+               prevdup = (xfs_dir2_data_unused_t *)((char *)d + be16_to_cpu(*tagp));
                if (be16_to_cpu(prevdup->freetag) != XFS_DIR2_DATA_FREE_TAG)
                        prevdup = NULL;
        } else
@@ -594,8 +590,8 @@ xfs_dir2_data_make_free(
                 * Fix up the new big freespace.
                 */
                be16_add(&prevdup->length, len + be16_to_cpu(postdup->length));
-               INT_SET(*XFS_DIR2_DATA_UNUSED_TAG_P(prevdup), ARCH_CONVERT,
-                       (xfs_dir2_data_off_t)((char *)prevdup - (char *)d));
+               *XFS_DIR2_DATA_UNUSED_TAG_P(prevdup) =
+                       cpu_to_be16((char *)prevdup - (char *)d);
                xfs_dir2_data_log_unused(tp, bp, prevdup);
                if (!needscan) {
                        /*
@@ -628,8 +624,8 @@ xfs_dir2_data_make_free(
        else if (prevdup) {
                dfp = xfs_dir2_data_freefind(d, prevdup);
                be16_add(&prevdup->length, len);
-               INT_SET(*XFS_DIR2_DATA_UNUSED_TAG_P(prevdup), ARCH_CONVERT,
-                       (xfs_dir2_data_off_t)((char *)prevdup - (char *)d));
+               *XFS_DIR2_DATA_UNUSED_TAG_P(prevdup) =
+                       cpu_to_be16((char *)prevdup - (char *)d);
                xfs_dir2_data_log_unused(tp, bp, prevdup);
                /*
                 * If the previous entry was in the table, the new entry
@@ -656,8 +652,8 @@ xfs_dir2_data_make_free(
                newdup = (xfs_dir2_data_unused_t *)((char *)d + offset);
                newdup->freetag = cpu_to_be16(XFS_DIR2_DATA_FREE_TAG);
                newdup->length = cpu_to_be16(len + be16_to_cpu(postdup->length));
-               INT_SET(*XFS_DIR2_DATA_UNUSED_TAG_P(newdup), ARCH_CONVERT,
-                       (xfs_dir2_data_off_t)((char *)newdup - (char *)d));
+               *XFS_DIR2_DATA_UNUSED_TAG_P(newdup) =
+                       cpu_to_be16((char *)newdup - (char *)d);
                xfs_dir2_data_log_unused(tp, bp, newdup);
                /*
                 * If the following entry was in the table, the new entry
@@ -683,8 +679,8 @@ xfs_dir2_data_make_free(
                newdup = (xfs_dir2_data_unused_t *)((char *)d + offset);
                newdup->freetag = cpu_to_be16(XFS_DIR2_DATA_FREE_TAG);
                newdup->length = cpu_to_be16(len);
-               INT_SET(*XFS_DIR2_DATA_UNUSED_TAG_P(newdup), ARCH_CONVERT,
-                       (xfs_dir2_data_off_t)((char *)newdup - (char *)d));
+               *XFS_DIR2_DATA_UNUSED_TAG_P(newdup) =
+                       cpu_to_be16((char *)newdup - (char *)d);
                xfs_dir2_data_log_unused(tp, bp, newdup);
                (void)xfs_dir2_data_freeinsert(d, newdup, needlogp);
        }
@@ -719,7 +715,7 @@ xfs_dir2_data_use_free(
        ASSERT(be16_to_cpu(dup->freetag) == XFS_DIR2_DATA_FREE_TAG);
        ASSERT(offset >= (char *)dup - (char *)d);
        ASSERT(offset + len <= (char *)dup + be16_to_cpu(dup->length) - (char *)d);
-       ASSERT((char *)dup - (char *)d == INT_GET(*XFS_DIR2_DATA_UNUSED_TAG_P(dup), ARCH_CONVERT));
+       ASSERT((char *)dup - (char *)d == be16_to_cpu(*XFS_DIR2_DATA_UNUSED_TAG_P(dup)));
        /*
         * Look up the entry in the bestfree table.
         */
@@ -752,8 +748,8 @@ xfs_dir2_data_use_free(
                newdup = (xfs_dir2_data_unused_t *)((char *)d + offset + len);
                newdup->freetag = cpu_to_be16(XFS_DIR2_DATA_FREE_TAG);
                newdup->length = cpu_to_be16(oldlen - len);
-               INT_SET(*XFS_DIR2_DATA_UNUSED_TAG_P(newdup), ARCH_CONVERT,
-                       (xfs_dir2_data_off_t)((char *)newdup - (char *)d));
+               *XFS_DIR2_DATA_UNUSED_TAG_P(newdup) =
+                       cpu_to_be16((char *)newdup - (char *)d);
                xfs_dir2_data_log_unused(tp, bp, newdup);
                /*
                 * If it was in the table, remove it and add the new one.
@@ -779,8 +775,8 @@ xfs_dir2_data_use_free(
        else if (matchback) {
                newdup = dup;
                newdup->length = cpu_to_be16(((char *)d + offset) - (char *)newdup);
-               INT_SET(*XFS_DIR2_DATA_UNUSED_TAG_P(newdup), ARCH_CONVERT,
-                       (xfs_dir2_data_off_t)((char *)newdup - (char *)d));
+               *XFS_DIR2_DATA_UNUSED_TAG_P(newdup) =
+                       cpu_to_be16((char *)newdup - (char *)d);
                xfs_dir2_data_log_unused(tp, bp, newdup);
                /*
                 * If it was in the table, remove it and add the new one.
@@ -806,14 +802,14 @@ xfs_dir2_data_use_free(
        else {
                newdup = dup;
                newdup->length = cpu_to_be16(((char *)d + offset) - (char *)newdup);
-               INT_SET(*XFS_DIR2_DATA_UNUSED_TAG_P(newdup), ARCH_CONVERT,
-                       (xfs_dir2_data_off_t)((char *)newdup - (char *)d));
+               *XFS_DIR2_DATA_UNUSED_TAG_P(newdup) =
+                       cpu_to_be16((char *)newdup - (char *)d);
                xfs_dir2_data_log_unused(tp, bp, newdup);
                newdup2 = (xfs_dir2_data_unused_t *)((char *)d + offset + len);
                newdup2->freetag = cpu_to_be16(XFS_DIR2_DATA_FREE_TAG);
                newdup2->length = cpu_to_be16(oldlen - len - be16_to_cpu(newdup->length));
-               INT_SET(*XFS_DIR2_DATA_UNUSED_TAG_P(newdup2), ARCH_CONVERT,
-                       (xfs_dir2_data_off_t)((char *)newdup2 - (char *)d));
+               *XFS_DIR2_DATA_UNUSED_TAG_P(newdup2) =
+                       cpu_to_be16((char *)newdup2 - (char *)d);
                xfs_dir2_data_log_unused(tp, bp, newdup2);
                /*
                 * If the old entry was in the table, we need to scan