]> git.ipfire.org Git - thirdparty/xfsprogs-dev.git/commitdiff
xfs_db: consolidate set_iocur_type behavior
authorEric Sandeen <sandeen@redhat.com>
Mon, 24 Aug 2020 17:20:07 +0000 (13:20 -0400)
committerEric Sandeen <sandeen@sandeen.net>
Mon, 24 Aug 2020 17:20:07 +0000 (13:20 -0400)
Right now there are 3 cases to type_f: inode type, type with fields,
and a default.  The first two were added to address issues with handling
V5 metadata.

The first two already use some version of set_cur, which handles all
of the validation etc. There's no reason to leave the open-coded bits
at the end, just send every non-inode type through set_cur and be done
with it.

Signed-off-by: Eric Sandeen <sandeen@redhat.com>
Reviewed-by: Darrick J. Wong <darrick.wong@oracle.com>
Signed-off-by: Eric Sandeen <sandeen@sandeen.net>
db/io.c

diff --git a/db/io.c b/db/io.c
index 884da599880a4cf3cc5dc6eb5b3f933a085be749..9309f361bf0fe0988c9ab8015a941d07ad7a4a67 100644 (file)
--- a/db/io.c
+++ b/db/io.c
@@ -586,7 +586,7 @@ void
 set_iocur_type(
        const typ_t     *type)
 {
-       struct xfs_buf  *bp = iocur_top->bp;
+       int             bb_count = 1;   /* type's size in basic blocks */
 
        /*
         * Inodes are special; verifier checks all inodes in the chunk, the
@@ -607,29 +607,10 @@ set_iocur_type(
        }
 
        /* adjust buffer size for types with fields & hence fsize() */
-       if (type->fields) {
-               int bb_count;   /* type's size in basic blocks */
-
+       if (type->fields)
                bb_count = BTOBB(byteize(fsize(type->fields,
-                                              iocur_top->data, 0, 0)));
-               set_cur(type, iocur_top->bb, bb_count, DB_RING_IGN, NULL);
-       }
-       iocur_top->typ = type;
-
-       /* verify the buffer if the type has one. */
-       if (!bp)
-               return;
-       if (!type->bops) {
-               bp->b_ops = NULL;
-               bp->b_flags |= LIBXFS_B_UNCHECKED;
-               return;
-       }
-       if (!(bp->b_flags & LIBXFS_B_UPTODATE))
-               return;
-       bp->b_error = 0;
-       bp->b_ops = type->bops;
-       bp->b_ops->verify_read(bp);
-       bp->b_flags &= ~LIBXFS_B_UNCHECKED;
+                                      iocur_top->data, 0, 0)));
+       set_cur(type, iocur_top->bb, bb_count, DB_RING_IGN, NULL);
 }
 
 static void