]> git.ipfire.org Git - thirdparty/xfsprogs-dev.git/commitdiff
libxfs: pass a struct libxfs_init to libxfs_mount
authorChristoph Hellwig <hch@lst.de>
Mon, 11 Dec 2023 16:37:30 +0000 (17:37 +0100)
committerCarlos Maiolino <cem@kernel.org>
Mon, 18 Dec 2023 13:57:48 +0000 (14:57 +0100)
Pass a libxfs_init structure to libxfs_mount instead of three separate
dev_t values.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Darrick J. Wong <djwong@kernel.org>
Reviewed-by: Carlos Maiolino <cmaiolino@redhat.com>
Signed-off-by: Carlos Maiolino <cem@kernel.org>
copy/xfs_copy.c
db/init.c
include/xfs_mount.h
libxfs/init.c
mkfs/xfs_mkfs.c
repair/xfs_repair.c

index 12ad81eb197e2502a4284657b8a8bc408d66d434..fbccd32a16ed68cd8e5ee7737d74d22ec48be0b6 100644 (file)
@@ -755,7 +755,7 @@ main(int argc, char **argv)
        }
        libxfs_buf_relse(sbp);
 
-       mp = libxfs_mount(&mbuf, sb, xargs.ddev, xargs.logdev, xargs.rtdev, 0);
+       mp = libxfs_mount(&mbuf, sb, &xargs, 0);
        if (mp == NULL) {
                do_log(_("%s: %s filesystem failed to initialize\n"
                        "%s: Aborting.\n"), progname, source_name, progname);
index 36e2bb89d726bc636a5e6cebdd61353171887141..74c63e21833fd1957323b83e2622303255c492ef 100644 (file)
--- a/db/init.c
+++ b/db/init.c
@@ -130,8 +130,7 @@ init(
        }
 
        agcount = sbp->sb_agcount;
-       mp = libxfs_mount(&xmount, sbp, x.ddev, x.logdev, x.rtdev,
-                         LIBXFS_MOUNT_DEBUGGER);
+       mp = libxfs_mount(&xmount, sbp, &x, LIBXFS_MOUNT_DEBUGGER);
        if (!mp) {
                fprintf(stderr,
                        _("%s: device %s unusable (not an XFS filesystem?)\n"),
index 99d1d9ab13cb09d322e4099a39b8f2383c425aab..9adc1f89867ccdfd339311de7a46dc493c526e27 100644 (file)
@@ -10,6 +10,7 @@
 struct xfs_inode;
 struct xfs_buftarg;
 struct xfs_da_geometry;
+struct libxfs_init;
 
 typedef void (*buf_writeback_fn)(struct xfs_buf *bp);
 
@@ -272,7 +273,7 @@ __XFS_UNSUPP_OPSTATE(shutdown)
 
 void libxfs_compute_all_maxlevels(struct xfs_mount *mp);
 struct xfs_mount *libxfs_mount(struct xfs_mount *mp, struct xfs_sb *sb,
-               dev_t dev, dev_t logdev, dev_t rtdev, unsigned int flags);
+               struct libxfs_init *xi, unsigned int flags);
 int libxfs_flush_mount(struct xfs_mount *mp);
 int            libxfs_umount(struct xfs_mount *mp);
 extern void    libxfs_rtmount_destroy (xfs_mount_t *);
index cafd40b1121fddb56619f371834ddc676cc0445c..1b739781953e8df9948387f755f67f1694f44d78 100644 (file)
@@ -744,9 +744,7 @@ struct xfs_mount *
 libxfs_mount(
        struct xfs_mount        *mp,
        struct xfs_sb           *sb,
-       dev_t                   dev,
-       dev_t                   logdev,
-       dev_t                   rtdev,
+       struct libxfs_init      *xi,
        unsigned int            flags)
 {
        struct xfs_buf          *bp;
@@ -759,7 +757,7 @@ libxfs_mount(
                xfs_set_debugger(mp);
        if (flags & LIBXFS_MOUNT_REPORT_CORRUPTION)
                xfs_set_reporting_corruption(mp);
-       libxfs_buftarg_init(mp, dev, logdev, rtdev);
+       libxfs_buftarg_init(mp, xi->ddev, xi->logdev, xi->rtdev);
 
        mp->m_finobt_nores = true;
        xfs_set_inode32(mp);
@@ -825,7 +823,7 @@ libxfs_mount(
        /* Initialize the precomputed transaction reservations values */
        xfs_trans_init(mp);
 
-       if (dev == 0)   /* maxtrres, we have no device so leave now */
+       if (xi->ddev == 0)      /* maxtrres, we have no device so leave now */
                return mp;
 
        /* device size checks must pass unless we're a debugger. */
index 346516e13c51e4e11aa224aa5087ae94f7b735bb..5aadf0f943d012eca41e80ae073e27fd5fbb7f63 100644 (file)
@@ -3483,11 +3483,12 @@ calculate_log_size(
        int                     min_logblocks;  /* absolute minimum */
        int                     max_logblocks;  /* absolute max for this AG */
        struct xfs_mount        mount;
+       struct libxfs_init      dummy_init = { };
 
        /* we need a temporary mount to calculate the minimum log size. */
        memset(&mount, 0, sizeof(mount));
        mount.m_sb = *sbp;
-       libxfs_mount(&mount, &mp->m_sb, 0, 0, 0, 0);
+       libxfs_mount(&mount, &mp->m_sb, &dummy_init, 0);
        min_logblocks = libxfs_log_calc_minimum_size(&mount);
        libxfs_umount(&mount);
 
@@ -4320,7 +4321,7 @@ main(
         * mount.
         */
        prepare_devices(&cfg, &xi, mp, sbp, force_overwrite);
-       mp = libxfs_mount(mp, sbp, xi.ddev, xi.logdev, xi.rtdev, 0);
+       mp = libxfs_mount(mp, sbp, &xi, 0);
        if (mp == NULL) {
                fprintf(stderr, _("%s: filesystem failed to initialize\n"),
                        progname);
index ff29bea97437098c711396c4d38517be468cd1b7..8a6cf31b4ea6fb513652d369a3a20d174b15178f 100644 (file)
@@ -1034,7 +1034,7 @@ main(int argc, char **argv)
         * initialized in phase 2.
         */
        memset(&xfs_m, 0, sizeof(xfs_mount_t));
-       mp = libxfs_mount(&xfs_m, &psb, x.ddev, x.logdev, x.rtdev, 0);
+       mp = libxfs_mount(&xfs_m, &psb, &x, 0);
 
        if (!mp)  {
                fprintf(stderr,