]> git.ipfire.org Git - thirdparty/xfsprogs-dev.git/commitdiff
xfs_db: fix nbits parameter in fa_ino[48] functions
authorDarrick J. Wong <djwong@kernel.org>
Fri, 25 Feb 2022 22:42:16 +0000 (17:42 -0500)
committerEric Sandeen <sandeen@sandeen.net>
Fri, 25 Feb 2022 22:42:16 +0000 (17:42 -0500)
Use the proper macro to convert ino4 and ino8 field byte sizes to a bit
count in the functions that navigate shortform directories.  This just
happens to work correctly for ino4 entries, but omits the upper 4 bytes
of an ino8 entry.  Note that the entries display correctly; it's just
the command "addr u3.sfdir3.list[X].inumber.i8" that won't.

Found by running smatch.

Signed-off-by: Darrick J. Wong <djwong@kernel.org>
Reviewed-by: Eric Sandeen <sandeen@redhat.com>
Signed-off-by: Eric Sandeen <sandeen@sandeen.net>
db/faddr.c

index 81d69c94cb16e8d5dcb2c76916beee27a3949dff..0127c5d1f4a3d5f9ccb804c4f6b38cae0f371ab9 100644 (file)
@@ -353,7 +353,8 @@ fa_ino4(
        xfs_ino_t       ino;
 
        ASSERT(next == TYP_INODE);
-       ino = (xfs_ino_t)getbitval(obj, bit, bitsz(XFS_INO32_SIZE), BVUNSIGNED);
+       ino = (xfs_ino_t)getbitval(obj, bit, bitize(XFS_INO32_SIZE),
+                       BVUNSIGNED);
        if (ino == NULLFSINO) {
                dbprintf(_("null inode number, cannot set new addr\n"));
                return;
@@ -370,7 +371,8 @@ fa_ino8(
        xfs_ino_t       ino;
 
        ASSERT(next == TYP_INODE);
-       ino = (xfs_ino_t)getbitval(obj, bit, bitsz(XFS_INO64_SIZE), BVUNSIGNED);
+       ino = (xfs_ino_t)getbitval(obj, bit, bitize(XFS_INO64_SIZE),
+                       BVUNSIGNED);
        if (ino == NULLFSINO) {
                dbprintf(_("null inode number, cannot set new addr\n"));
                return;