xfs
[Top] [All Lists]

[PATCH 11/16] xfs: move node entry counts to xfs_da_geometry

To: xfs@xxxxxxxxxxx
Subject: [PATCH 11/16] xfs: move node entry counts to xfs_da_geometry
From: Dave Chinner <david@xxxxxxxxxxxxx>
Date: Fri, 23 May 2014 10:03:47 +1000
Delivered-to: xfs@xxxxxxxxxxx
In-reply-to: <1400803432-20048-1-git-send-email-david@xxxxxxxxxxxxx>
References: <1400803432-20048-1-git-send-email-david@xxxxxxxxxxxxx>
From: Dave Chinner <dchinner@xxxxxxxxxx>

Signed-off-by: Dave Chinner <dchinner@xxxxxxxxxx>
---
 fs/xfs/xfs_attr.c      |  8 ++++----
 fs/xfs/xfs_da_btree.c  |  4 ++--
 fs/xfs/xfs_dir2.c      |  3 ---
 fs/xfs/xfs_dir2_node.c | 10 +++++-----
 fs/xfs/xfs_mount.h     |  2 --
 5 files changed, 11 insertions(+), 16 deletions(-)

diff --git a/fs/xfs/xfs_attr.c b/fs/xfs/xfs_attr.c
index c547498..8bb9ae6 100644
--- a/fs/xfs/xfs_attr.c
+++ b/fs/xfs/xfs_attr.c
@@ -899,7 +899,7 @@ restart:
        state->args = args;
        state->mp = mp;
        state->blocksize = state->mp->m_sb.sb_blocksize;
-       state->node_ents = state->mp->m_attr_node_ents;
+       state->node_ents = args->geo->node_ents;
 
        /*
         * Search to see if name already exists, and get back a pointer
@@ -1078,7 +1078,7 @@ restart:
                state->args = args;
                state->mp = mp;
                state->blocksize = state->mp->m_sb.sb_blocksize;
-               state->node_ents = state->mp->m_attr_node_ents;
+               state->node_ents = args->geo->node_ents;
                state->inleaf = 0;
                error = xfs_da3_node_lookup_int(state, &retval);
                if (error)
@@ -1170,7 +1170,7 @@ xfs_attr_node_removename(xfs_da_args_t *args)
        state->args = args;
        state->mp = dp->i_mount;
        state->blocksize = state->mp->m_sb.sb_blocksize;
-       state->node_ents = state->mp->m_attr_node_ents;
+       state->node_ents = args->geo->node_ents;
 
        /*
         * Search to see if name exists, and get back a pointer to it.
@@ -1433,7 +1433,7 @@ xfs_attr_node_get(xfs_da_args_t *args)
        state->args = args;
        state->mp = args->dp->i_mount;
        state->blocksize = state->mp->m_sb.sb_blocksize;
-       state->node_ents = state->mp->m_attr_node_ents;
+       state->node_ents = args->geo->node_ents;
 
        /*
         * Search to see if name exists, and get back a pointer to it.
diff --git a/fs/xfs/xfs_da_btree.c b/fs/xfs/xfs_da_btree.c
index b9b007d..f935370 100644
--- a/fs/xfs/xfs_da_btree.c
+++ b/fs/xfs/xfs_da_btree.c
@@ -167,8 +167,8 @@ xfs_da3_node_verify(
         * we don't know if the node is for and attribute or directory tree,
         * so only fail if the count is outside both bounds
         */
-       if (ichdr.count > mp->m_dir_node_ents &&
-           ichdr.count > mp->m_attr_node_ents)
+       if (ichdr.count > mp->m_dir_geo->node_ents &&
+           ichdr.count > mp->m_attr_geo->node_ents)
                return false;
 
        /* XXX: hash order check? */
diff --git a/fs/xfs/xfs_dir2.c b/fs/xfs/xfs_dir2.c
index 0230342..90d426d 100644
--- a/fs/xfs/xfs_dir2.c
+++ b/fs/xfs/xfs_dir2.c
@@ -144,9 +144,6 @@ xfs_da_mount(
        else
                mp->m_dirnameops = &xfs_default_nameops;
 
-       /* XXX: these are to be removed as code is converted to use geo */
-       mp->m_dir_node_ents = mp->m_dir_geo->node_ents;
-       mp->m_attr_node_ents = mp->m_attr_geo->node_ents;
        return 0;
 }
 
diff --git a/fs/xfs/xfs_dir2_node.c b/fs/xfs/xfs_dir2_node.c
index de5b2996..eff6b8d 100644
--- a/fs/xfs/xfs_dir2_node.c
+++ b/fs/xfs/xfs_dir2_node.c
@@ -1596,8 +1596,8 @@ xfs_dir2_node_addname(
        state = xfs_da_state_alloc();
        state->args = args;
        state->mp = args->dp->i_mount;
-       state->blocksize = state->args->geo->blksize;
-       state->node_ents = state->mp->m_dir_node_ents;
+       state->blocksize = args->geo->blksize;
+       state->node_ents = args->geo->node_ents;
        /*
         * Look up the name.  We're not supposed to find it, but
         * this gives us the insertion point.
@@ -2043,7 +2043,7 @@ xfs_dir2_node_lookup(
        state->args = args;
        state->mp = args->dp->i_mount;
        state->blocksize = args->geo->blksize;
-       state->node_ents = state->mp->m_dir_node_ents;
+       state->node_ents = args->geo->node_ents;
        /*
         * Fill in the path to the entry in the cursor.
         */
@@ -2098,7 +2098,7 @@ xfs_dir2_node_removename(
        state->args = args;
        state->mp = args->dp->i_mount;
        state->blocksize = args->geo->blksize;
-       state->node_ents = state->mp->m_dir_node_ents;
+       state->node_ents = args->geo->node_ents;
 
        /* Look up the entry we're deleting, set up the cursor. */
        error = xfs_da3_node_lookup_int(state, &rval);
@@ -2168,7 +2168,7 @@ xfs_dir2_node_replace(
        state->args = args;
        state->mp = args->dp->i_mount;
        state->blocksize = args->geo->blksize;
-       state->node_ents = state->mp->m_dir_node_ents;
+       state->node_ents = args->geo->node_ents;
        inum = args->inumber;
        /*
         * Lookup the entry to change in the btree.
diff --git a/fs/xfs/xfs_mount.h b/fs/xfs/xfs_mount.h
index 3b690c36..6d7e5d7 100644
--- a/fs/xfs/xfs_mount.h
+++ b/fs/xfs/xfs_mount.h
@@ -134,8 +134,6 @@ typedef struct xfs_mount {
        int                     m_fixedfsid[2]; /* unchanged for life of FS */
        uint                    m_dmevmask;     /* DMI events for this FS */
        __uint64_t              m_flags;        /* global mount flags */
-       uint                    m_dir_node_ents; /* #entries in a dir danode */
-       uint                    m_attr_node_ents; /* #entries in attr danode */
        int                     m_ialloc_inos;  /* inodes in inode allocation */
        int                     m_ialloc_blks;  /* blocks in inode allocation */
        int                     m_inoalign_mask;/* mask sb_inoalignmt if used */
-- 
1.9.0

<Prev in Thread] Current Thread [Next in Thread>