]> asedeno.scripts.mit.edu Git - linux.git/commitdiff
xfs: devirtualize ->db_to_fdb and ->db_to_fdindex
authorChristoph Hellwig <hch@lst.de>
Fri, 8 Nov 2019 23:01:39 +0000 (15:01 -0800)
committerDarrick J. Wong <darrick.wong@oracle.com>
Mon, 11 Nov 2019 00:54:21 +0000 (16:54 -0800)
Now that the max bests value is in struct xfs_da_geometry both instances
of ->db_to_fdb and ->db_to_fdindex are identical.  Replace them with
local xfs_dir2_db_to_fdb and xfs_dir2_db_to_fdindex functions in
xfs_dir2_node.c.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Darrick J. Wong <darrick.wong@oracle.com>
Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
fs/xfs/libxfs/xfs_da_format.c
fs/xfs/libxfs/xfs_dir2.h
fs/xfs/libxfs/xfs_dir2_node.c

index d2d3144c1598aca27496959e56dccd16bf701785..2b708b9fae1a6d3ab99c8c46d2ee0dc0bb378300 100644 (file)
@@ -400,44 +400,6 @@ xfs_dir3_data_unused_p(struct xfs_dir2_data_hdr *hdr)
                ((char *)hdr + sizeof(struct xfs_dir3_data_hdr));
 }
 
-/*
- * Convert data space db to the corresponding free db.
- */
-static xfs_dir2_db_t
-xfs_dir2_db_to_fdb(struct xfs_da_geometry *geo, xfs_dir2_db_t db)
-{
-       return xfs_dir2_byte_to_db(geo, XFS_DIR2_FREE_OFFSET) +
-                       (db / geo->free_max_bests);
-}
-
-/*
- * Convert data space db to the corresponding index in a free db.
- */
-static int
-xfs_dir2_db_to_fdindex(struct xfs_da_geometry *geo, xfs_dir2_db_t db)
-{
-       return db % geo->free_max_bests;
-}
-
-/*
- * Convert data space db to the corresponding free db.
- */
-static xfs_dir2_db_t
-xfs_dir3_db_to_fdb(struct xfs_da_geometry *geo, xfs_dir2_db_t db)
-{
-       return xfs_dir2_byte_to_db(geo, XFS_DIR2_FREE_OFFSET) +
-                       (db / geo->free_max_bests);
-}
-
-/*
- * Convert data space db to the corresponding index in a free db.
- */
-static int
-xfs_dir3_db_to_fdindex(struct xfs_da_geometry *geo, xfs_dir2_db_t db)
-{
-       return db % geo->free_max_bests;
-}
-
 static const struct xfs_dir_ops xfs_dir2_ops = {
        .sf_entsize = xfs_dir2_sf_entsize,
        .sf_nextentry = xfs_dir2_sf_nextentry,
@@ -467,9 +429,6 @@ static const struct xfs_dir_ops xfs_dir2_ops = {
        .data_first_entry_p = xfs_dir2_data_first_entry_p,
        .data_entry_p = xfs_dir2_data_entry_p,
        .data_unused_p = xfs_dir2_data_unused_p,
-
-       .db_to_fdb = xfs_dir2_db_to_fdb,
-       .db_to_fdindex = xfs_dir2_db_to_fdindex,
 };
 
 static const struct xfs_dir_ops xfs_dir2_ftype_ops = {
@@ -501,9 +460,6 @@ static const struct xfs_dir_ops xfs_dir2_ftype_ops = {
        .data_first_entry_p = xfs_dir2_ftype_data_first_entry_p,
        .data_entry_p = xfs_dir2_data_entry_p,
        .data_unused_p = xfs_dir2_data_unused_p,
-
-       .db_to_fdb = xfs_dir2_db_to_fdb,
-       .db_to_fdindex = xfs_dir2_db_to_fdindex,
 };
 
 static const struct xfs_dir_ops xfs_dir3_ops = {
@@ -535,9 +491,6 @@ static const struct xfs_dir_ops xfs_dir3_ops = {
        .data_first_entry_p = xfs_dir3_data_first_entry_p,
        .data_entry_p = xfs_dir3_data_entry_p,
        .data_unused_p = xfs_dir3_data_unused_p,
-
-       .db_to_fdb = xfs_dir3_db_to_fdb,
-       .db_to_fdindex = xfs_dir3_db_to_fdindex,
 };
 
 /*
index e3c1385d1522107085ea4b090cd63c66c3a3a1c3..e302679d8c80aa6a6bf7984428def020bf0e4520 100644 (file)
@@ -71,11 +71,6 @@ struct xfs_dir_ops {
                (*data_entry_p)(struct xfs_dir2_data_hdr *hdr);
        struct xfs_dir2_data_unused *
                (*data_unused_p)(struct xfs_dir2_data_hdr *hdr);
-
-       xfs_dir2_db_t (*db_to_fdb)(struct xfs_da_geometry *geo,
-                                  xfs_dir2_db_t db);
-       int     (*db_to_fdindex)(struct xfs_da_geometry *geo,
-                                xfs_dir2_db_t db);
 };
 
 extern const struct xfs_dir_ops *
index 5d35a6d77b56af53fb030a22b3039766f0b0d0a9..daa9dc7a77627f8638a170a7eee7c32e3e2f9ca4 100644 (file)
@@ -33,6 +33,25 @@ static int xfs_dir2_leafn_remove(xfs_da_args_t *args, struct xfs_buf *bp,
                                 int index, xfs_da_state_blk_t *dblk,
                                 int *rval);
 
+/*
+ * Convert data space db to the corresponding free db.
+ */
+static xfs_dir2_db_t
+xfs_dir2_db_to_fdb(struct xfs_da_geometry *geo, xfs_dir2_db_t db)
+{
+       return xfs_dir2_byte_to_db(geo, XFS_DIR2_FREE_OFFSET) +
+                       (db / geo->free_max_bests);
+}
+
+/*
+ * Convert data space db to the corresponding index in a free db.
+ */
+static int
+xfs_dir2_db_to_fdindex(struct xfs_da_geometry *geo, xfs_dir2_db_t db)
+{
+       return db % geo->free_max_bests;
+}
+
 /*
  * Check internal consistency of a leafn block.
  */
@@ -680,7 +699,7 @@ xfs_dir2_leafn_lookup_for_addname(
                         * Convert the data block to the free block
                         * holding its freespace information.
                         */
-                       newfdb = dp->d_ops->db_to_fdb(args->geo, newdb);
+                       newfdb = xfs_dir2_db_to_fdb(args->geo, newdb);
                        /*
                         * If it's not the one we have in hand, read it in.
                         */
@@ -704,7 +723,7 @@ xfs_dir2_leafn_lookup_for_addname(
                        /*
                         * Get the index for our entry.
                         */
-                       fi = dp->d_ops->db_to_fdindex(args->geo, curdb);
+                       fi = xfs_dir2_db_to_fdindex(args->geo, curdb);
                        /*
                         * If it has room, return it.
                         */
@@ -1326,7 +1345,7 @@ xfs_dir2_leafn_remove(
                 * Convert the data block number to a free block,
                 * read in the free block.
                 */
-               fdb = dp->d_ops->db_to_fdb(args->geo, db);
+               fdb = xfs_dir2_db_to_fdb(args->geo, db);
                error = xfs_dir2_free_read(tp, dp,
                                           xfs_dir2_db_to_da(args->geo, fdb),
                                           &fbp);
@@ -1346,7 +1365,7 @@ xfs_dir2_leafn_remove(
                /*
                 * Calculate which entry we need to fix.
                 */
-               findex = dp->d_ops->db_to_fdindex(args->geo, db);
+               findex = xfs_dir2_db_to_fdindex(args->geo, db);
                longest = be16_to_cpu(bf[0].length);
                /*
                 * If the data block is now empty we can get rid of it
@@ -1689,7 +1708,7 @@ xfs_dir2_node_add_datablk(
         * Get the freespace block corresponding to the data block
         * that was just allocated.
         */
-       fbno = dp->d_ops->db_to_fdb(args->geo, *dbno);
+       fbno = xfs_dir2_db_to_fdb(args->geo, *dbno);
        error = xfs_dir2_free_try_read(tp, dp,
                               xfs_dir2_db_to_da(args->geo, fbno), &fbp);
        if (error)
@@ -1704,11 +1723,11 @@ xfs_dir2_node_add_datablk(
                if (error)
                        return error;
 
-               if (dp->d_ops->db_to_fdb(args->geo, *dbno) != fbno) {
+               if (xfs_dir2_db_to_fdb(args->geo, *dbno) != fbno) {
                        xfs_alert(mp,
 "%s: dir ino %llu needed freesp block %lld for data block %lld, got %lld",
                                __func__, (unsigned long long)dp->i_ino,
-                               (long long)dp->d_ops->db_to_fdb(args->geo, *dbno),
+                               (long long)xfs_dir2_db_to_fdb(args->geo, *dbno),
                                (long long)*dbno, (long long)fbno);
                        if (fblk) {
                                xfs_alert(mp,
@@ -1737,7 +1756,7 @@ xfs_dir2_node_add_datablk(
        }
 
        /* Set the freespace block index from the data block number. */
-       *findex = dp->d_ops->db_to_fdindex(args->geo, *dbno);
+       *findex = xfs_dir2_db_to_fdindex(args->geo, *dbno);
 
        /* Extend the freespace table if the new data block is off the end. */
        if (*findex >= hdr->nvalid) {