aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChristoph Hellwig <hch@lst.de>2023-12-11 17:37:30 +0100
committerCarlos Maiolino <cem@kernel.org>2023-12-18 14:57:48 +0100
commitddd9942bccaf3a52630a862fbb7e5c94a2571363 (patch)
treed4c7bfe13f9904cd2a168654a40bc23683fda5fb
parent01dcfd9e47afaa1544d3ab5427717489af0f9075 (diff)
downloadxfsprogs-dev-ddd9942bccaf3a52630a862fbb7e5c94a2571363.tar.gz
libxfs: pass a struct libxfs_init to libxfs_mount
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>
-rw-r--r--copy/xfs_copy.c2
-rw-r--r--db/init.c3
-rw-r--r--include/xfs_mount.h3
-rw-r--r--libxfs/init.c8
-rw-r--r--mkfs/xfs_mkfs.c5
-rw-r--r--repair/xfs_repair.c2
6 files changed, 11 insertions, 12 deletions
diff --git a/copy/xfs_copy.c b/copy/xfs_copy.c
index 12ad81eb19..fbccd32a16 100644
--- a/copy/xfs_copy.c
+++ b/copy/xfs_copy.c
@@ -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);
diff --git a/db/init.c b/db/init.c
index 36e2bb89d7..74c63e2183 100644
--- 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"),
diff --git a/include/xfs_mount.h b/include/xfs_mount.h
index 99d1d9ab13..9adc1f8986 100644
--- a/include/xfs_mount.h
+++ b/include/xfs_mount.h
@@ -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 *);
diff --git a/libxfs/init.c b/libxfs/init.c
index cafd40b112..1b73978195 100644
--- a/libxfs/init.c
+++ b/libxfs/init.c
@@ -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. */
diff --git a/mkfs/xfs_mkfs.c b/mkfs/xfs_mkfs.c
index 346516e13c..5aadf0f943 100644
--- a/mkfs/xfs_mkfs.c
+++ b/mkfs/xfs_mkfs.c
@@ -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);
diff --git a/repair/xfs_repair.c b/repair/xfs_repair.c
index ff29bea974..8a6cf31b4e 100644
--- a/repair/xfs_repair.c
+++ b/repair/xfs_repair.c
@@ -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,