]> git.ipfire.org Git - thirdparty/xfsprogs-dev.git/commitdiff
libxfs: pass a struct libxfs_init to libxfs_alloc_buftarg
authorChristoph Hellwig <hch@lst.de>
Mon, 11 Dec 2023 16:37:31 +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_alloc_buftarg 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
db/sb.c
libxfs/init.c
libxfs/libxfs_io.h
logprint/logprint.c
mkfs/xfs_mkfs.c

index fbccd32a16ed68cd8e5ee7737d74d22ec48be0b6..2f98ae8fbe34d44e5715ef46b3b6698183a0dfce 100644 (file)
@@ -730,7 +730,7 @@ main(int argc, char **argv)
        memset(&mbuf, 0, sizeof(xfs_mount_t));
 
        /* We don't yet know the sector size, so read maximal size */
-       libxfs_buftarg_init(&mbuf, xargs.ddev, xargs.logdev, xargs.rtdev);
+       libxfs_buftarg_init(&mbuf, &xargs);
        error = -libxfs_buf_read_uncached(mbuf.m_ddev_targp, XFS_SB_DADDR,
                        1 << (XFS_MAX_SECTORSIZE_LOG - BBSHIFT), 0, &sbp, NULL);
        if (error) {
index 74c63e21833fd1957323b83e2622303255c492ef..8bd8e83f6d99bfcfa2c31769e1e235420b8f835c 100644 (file)
--- a/db/init.c
+++ b/db/init.c
@@ -106,7 +106,7 @@ init(
         * tool and so need to be able to mount busted filesystems.
         */
        memset(&xmount, 0, sizeof(struct xfs_mount));
-       libxfs_buftarg_init(&xmount, x.ddev, x.logdev, x.rtdev);
+       libxfs_buftarg_init(&xmount, &x);
        error = -libxfs_buf_read_uncached(xmount.m_ddev_targp, XFS_SB_DADDR,
                        1 << (XFS_MAX_SECTORSIZE_LOG - BBSHIFT), 0, &bp, NULL);
        if (error) {
diff --git a/db/sb.c b/db/sb.c
index 2f046c6aa1c578ca5e15e9ca4b5c0aeece7ec74e..30709e84e652c4a6662e90f3e90f3d1bef9219d9 100644 (file)
--- a/db/sb.c
+++ b/db/sb.c
@@ -233,7 +233,7 @@ sb_logcheck(void)
                }
        }
 
-       libxfs_buftarg_init(mp, x.ddev, x.logdev, x.rtdev);
+       libxfs_buftarg_init(mp, &x);
 
        dirty = xlog_is_dirty(mp, mp->m_log);
        if (dirty == -1) {
index 1b739781953e8df9948387f755f67f1694f44d78..14962b9fa33ac9337f044ae9c0e3dbf36fe02b6a 100644 (file)
@@ -607,9 +607,7 @@ static char *wf_opts[] = {
 void
 libxfs_buftarg_init(
        struct xfs_mount        *mp,
-       dev_t                   dev,
-       dev_t                   logdev,
-       dev_t                   rtdev)
+       struct libxfs_init      *xi)
 {
        char                    *p = getenv("LIBXFS_DEBUG_WRITE_CRASH");
        unsigned long           dfail = 0, lfail = 0, rfail = 0;
@@ -653,29 +651,30 @@ libxfs_buftarg_init(
 
        if (mp->m_ddev_targp) {
                /* should already have all buftargs initialised */
-               if (mp->m_ddev_targp->bt_bdev != dev ||
+               if (mp->m_ddev_targp->bt_bdev != xi->ddev ||
                    mp->m_ddev_targp->bt_mount != mp) {
                        fprintf(stderr,
                                _("%s: bad buftarg reinit, ddev\n"),
                                progname);
                        exit(1);
                }
-               if (!logdev || logdev == dev) {
+               if (!xi->logdev || xi->logdev == xi->ddev) {
                        if (mp->m_logdev_targp != mp->m_ddev_targp) {
                                fprintf(stderr,
                                _("%s: bad buftarg reinit, ldev mismatch\n"),
                                        progname);
                                exit(1);
                        }
-               } else if (mp->m_logdev_targp->bt_bdev != logdev ||
+               } else if (mp->m_logdev_targp->bt_bdev != xi->logdev ||
                           mp->m_logdev_targp->bt_mount != mp) {
                        fprintf(stderr,
                                _("%s: bad buftarg reinit, logdev\n"),
                                progname);
                        exit(1);
                }
-               if (rtdev && (mp->m_rtdev_targp->bt_bdev != rtdev ||
-                             mp->m_rtdev_targp->bt_mount != mp)) {
+               if (xi->rtdev &&
+                   (mp->m_rtdev_targp->bt_bdev != xi->rtdev ||
+                    mp->m_rtdev_targp->bt_mount != mp)) {
                        fprintf(stderr,
                                _("%s: bad buftarg reinit, rtdev\n"),
                                progname);
@@ -684,12 +683,13 @@ libxfs_buftarg_init(
                return;
        }
 
-       mp->m_ddev_targp = libxfs_buftarg_alloc(mp, dev, dfail);
-       if (!logdev || logdev == dev)
+       mp->m_ddev_targp = libxfs_buftarg_alloc(mp, xi->ddev, dfail);
+       if (!xi->logdev || xi->logdev == xi->ddev)
                mp->m_logdev_targp = mp->m_ddev_targp;
        else
-               mp->m_logdev_targp = libxfs_buftarg_alloc(mp, logdev, lfail);
-       mp->m_rtdev_targp = libxfs_buftarg_alloc(mp, rtdev, rfail);
+               mp->m_logdev_targp = libxfs_buftarg_alloc(mp, xi->logdev,
+                               lfail);
+       mp->m_rtdev_targp = libxfs_buftarg_alloc(mp, xi->rtdev, rfail);
 }
 
 /* Compute maximum possible height for per-AG btree types for this fs. */
@@ -757,7 +757,7 @@ libxfs_mount(
                xfs_set_debugger(mp);
        if (flags & LIBXFS_MOUNT_REPORT_CORRUPTION)
                xfs_set_reporting_corruption(mp);
-       libxfs_buftarg_init(mp, xi->ddev, xi->logdev, xi->rtdev);
+       libxfs_buftarg_init(mp, xi);
 
        mp->m_finobt_nores = true;
        xfs_set_inode32(mp);
index fae8642720178a49f831673633af9af16f5a88a4..bf4d4ecd9771054a0e1731ac38e195a963ba4156 100644 (file)
@@ -14,6 +14,7 @@
 struct xfs_buf;
 struct xfs_mount;
 struct xfs_perag;
+struct libxfs_init;
 
 /*
  * IO verifier callbacks need the xfs_mount pointer, so we have to behave
@@ -50,8 +51,7 @@ xfs_buftarg_trip_write(
        pthread_mutex_unlock(&btp->lock);
 }
 
-extern void    libxfs_buftarg_init(struct xfs_mount *mp, dev_t ddev,
-                                   dev_t logdev, dev_t rtdev);
+void libxfs_buftarg_init(struct xfs_mount *mp, struct libxfs_init *xi);
 int libxfs_blkdev_issue_flush(struct xfs_buftarg *btp);
 
 #define LIBXFS_BBTOOFF64(bbs)  (((xfs_off_t)(bbs)) << BBSHIFT)
index c6e5051e8f8c4ece45e541e517b2903cc6fc84ed..c2976333d4cc4a3c9da1f5b1551042b6882ea4e0 100644 (file)
@@ -213,7 +213,7 @@ main(int argc, char **argv)
        if (!libxfs_init(&x))
                exit(1);
 
-       libxfs_buftarg_init(&mount, x.ddev, x.logdev, x.rtdev);
+       libxfs_buftarg_init(&mount, &x);
        logstat(&mount, &log);
 
        logfd = (x.logfd < 0) ? x.dfd : x.logfd;
index 5aadf0f943d012eca41e80ae073e27fd5fbb7f63..50b0a7e19f263c7d19da6cef3b48b3d44b0c7208 100644 (file)
@@ -4313,7 +4313,7 @@ main(
        /*
         * we need the libxfs buffer cache from here on in.
         */
-       libxfs_buftarg_init(mp, xi.ddev, xi.logdev, xi.rtdev);
+       libxfs_buftarg_init(mp, &xi);
 
        /*
         * Before we mount the filesystem we need to make sure the devices have