]> git.ipfire.org Git - thirdparty/xfsprogs-dev.git/commitdiff
libxlog: don't require a libxfs_xinit structure for xlog_init
authorChristoph Hellwig <hch@lst.de>
Mon, 11 Dec 2023 16:37:27 +0000 (17:37 +0100)
committerCarlos Maiolino <cem@kernel.org>
Mon, 18 Dec 2023 13:57:48 +0000 (14:57 +0100)
xlog_init currently requires a libxfs_args structure to be passed in,
and then clobbers various log-related arguments to it.  There is no
good reason for that as all the required information can be calculated
without it.

Remove the x argument to xlog_init and xlog_is_dirty and the now unused
logBBstart member in struct libxfs_xinit.

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/metadump.c
db/sb.c
include/libxfs.h
include/libxlog.h
libxfs/init.c
libxlog/util.c
logprint/logprint.c
repair/phase2.c

index 4bd473a04bba129b181ec8dafde72508bb045350..86187086db659d509793cb69747126b0678655ee 100644 (file)
@@ -784,7 +784,7 @@ main(int argc, char **argv)
         */
        memset(&xlog, 0, sizeof(struct xlog));
        mp->m_log = &xlog;
-       c = xlog_is_dirty(mp, mp->m_log, &xargs);
+       c = xlog_is_dirty(mp, mp->m_log);
        if (!duplicate) {
                if (c == 1) {
                        do_log(_(
index e57b024cd055c757f2e9af84d0736bbd195ae651..bac35b9cc68c10404b115a63f206fa2021be2c3d 100644 (file)
@@ -2615,7 +2615,7 @@ copy_log(void)
        if (!metadump.obfuscate && !metadump.zero_stale_data)
                goto done;
 
-       dirty = xlog_is_dirty(mp, &log, &x);
+       dirty = xlog_is_dirty(mp, &log);
 
        switch (dirty) {
        case 0:
@@ -2945,7 +2945,7 @@ metadump_f(
                if (iocur_top->data) {  /* best effort */
                        struct xlog     log;
 
-                       if (xlog_is_dirty(mp, &log, &x))
+                       if (xlog_is_dirty(mp, &log))
                                metadump.dirty_log = true;
                }
                pop_cur();
diff --git a/db/sb.c b/db/sb.c
index a3a4a758f5001ce691383fbc00c8557892fcf2fd..2f046c6aa1c578ca5e15e9ca4b5c0aeece7ec74e 100644 (file)
--- a/db/sb.c
+++ b/db/sb.c
@@ -235,7 +235,7 @@ sb_logcheck(void)
 
        libxfs_buftarg_init(mp, x.ddev, x.logdev, x.rtdev);
 
-       dirty = xlog_is_dirty(mp, mp->m_log, &x);
+       dirty = xlog_is_dirty(mp, mp->m_log);
        if (dirty == -1) {
                dbprintf(_("ERROR: cannot find log head/tail, run xfs_repair\n"));
                return 0;
index b35dc2184a68f3dc79bbe6efe41d0ce429e57f11..270efb2c18c202137ca4802cec8eafa4b11c1a88 100644 (file)
@@ -115,7 +115,6 @@ typedef struct libxfs_xinit {
        long long       logBBsize;      /* size of log subvolume (BBs) */
                                        /* (blocks allocated for use as
                                         * log is stored in mount structure) */
-       long long       logBBstart;     /* start block of log subvolume (BBs) */
        long long       rtsize;         /* size of realtime subvolume (BBs) */
        int             dbsize;         /* data subvolume device blksize */
        int             lbsize;         /* log subvolume device blksize */
index 657acfe42c3b46690585a35d463108eb439c93f7..57f39e4e82bacb9d9c9d09222db73bca73b7e0f8 100644 (file)
@@ -71,8 +71,8 @@ extern int    print_record_header;
 /* libxfs parameters */
 extern libxfs_init_t   x;
 
-void xlog_init(struct xfs_mount *mp, struct xlog *log, libxfs_init_t *x);
-int xlog_is_dirty(struct xfs_mount *mp, struct xlog *log, libxfs_init_t *x);
+void xlog_init(struct xfs_mount *mp, struct xlog *log);
+int xlog_is_dirty(struct xfs_mount *mp, struct xlog *log);
 
 extern struct xfs_buf *xlog_get_bp(struct xlog *, int);
 extern int     xlog_bread(struct xlog *log, xfs_daddr_t blk_no, int nbblks,
index 894d8405740745c4a7397f2dc1a18ada4e5f545c..6482ba52b2ad45bd8795fbf93a43a11810c162fb 100644 (file)
@@ -304,7 +304,7 @@ libxfs_init(libxfs_init_t *a)
        a->dfd = a->logfd = a->rtfd = -1;
        a->ddev = a->logdev = a->rtdev = 0;
        a->dsize = a->lbsize = a->rtbsize = 0;
-       a->dbsize = a->logBBsize = a->logBBstart = a->rtsize = 0;
+       a->dbsize = a->logBBsize = a->rtsize = 0;
 
        flags = (a->isreadonly | a->isdirect);
 
index bc4db478e9f312ffe363eea212ce399975ca566f..d1377c2e2b0b31014c950162c36132bd89850e66 100644 (file)
@@ -15,22 +15,18 @@ libxfs_init_t x;
 void
 xlog_init(
        struct xfs_mount        *mp,
-       struct xlog             *log,
-       libxfs_init_t           *x)
+       struct xlog             *log)
 {
-       memset(log, 0, sizeof(*log));
+       unsigned int            log_sect_size = BBSIZE;
 
-       /* We (re-)init members of libxfs_init_t here?  really? */
-       x->logBBsize = XFS_FSB_TO_BB(mp, mp->m_sb.sb_logblocks);
-       x->logBBstart = XFS_FSB_TO_DADDR(mp, mp->m_sb.sb_logstart);
-       x->lbsize = BBSIZE;
-       if (xfs_has_sector(mp))
-               x->lbsize <<= (mp->m_sb.sb_logsectlog - BBSHIFT);
+       memset(log, 0, sizeof(*log));
 
        log->l_dev = mp->m_logdev_targp;
-       log->l_logBBsize = x->logBBsize;
-       log->l_logBBstart = x->logBBstart;
-       log->l_sectBBsize = BTOBB(x->lbsize);
+       log->l_logBBsize = XFS_FSB_TO_BB(mp, mp->m_sb.sb_logblocks);
+       log->l_logBBstart = XFS_FSB_TO_DADDR(mp, mp->m_sb.sb_logstart);
+       if (xfs_has_sector(mp))
+               log_sect_size <<= (mp->m_sb.sb_logsectlog - BBSHIFT);
+       log->l_sectBBsize  = BTOBB(log_sect_size);
        log->l_mp = mp;
        if (xfs_has_sector(mp)) {
                log->l_sectbb_log = mp->m_sb.sb_logsectlog - BBSHIFT;
@@ -50,13 +46,12 @@ xlog_init(
 int
 xlog_is_dirty(
        struct xfs_mount        *mp,
-       struct xlog             *log,
-       libxfs_init_t           *x)
+       struct xlog             *log)
 {
        int                     error;
        xfs_daddr_t             head_blk, tail_blk;
 
-       xlog_init(mp, log, x);
+       xlog_init(mp, log);
 
        error = xlog_find_tail(log, &head_blk, &tail_blk);
        if (error) {
index c78aeb2f86346e4f6f5bfa1e4298c78241426774..bcdb6b359a14b44ba04dd46b067a6228d6939e1d 100644 (file)
@@ -85,7 +85,7 @@ logstat(
                mp->m_features |= libxfs_sb_version_to_features(&mp->m_sb);
                mp->m_blkbb_log = sb->sb_blocklog - BBSHIFT;
 
-               xlog_init(mp, log, &x);
+               xlog_init(mp, log);
 
                if (!x.logname && sb->sb_logstart == 0) {
                        fprintf(stderr, _("    external log device not specified\n\n"));
index a9dd77be391995d70322680f968d9544bc899ea8..48263e1615d36017e3def33d270622f476da2792 100644 (file)
@@ -30,7 +30,7 @@ zero_log(
        xfs_daddr_t             tail_blk;
        struct xlog             *log = mp->m_log;
 
-       xlog_init(mp, mp->m_log, &x);
+       xlog_init(mp, mp->m_log);
 
        /*
         * Find the log head and tail and alert the user to the situation if the