From: Darrick J. Wong Date: Fri, 25 Feb 2022 22:42:16 +0000 (-0500) Subject: xfs_db: fix nbits parameter in fa_ino[48] functions X-Git-Tag: v5.15.0-rc1~17 X-Git-Url: http://git.ipfire.org/gitweb/gitweb.cgi?a=commitdiff_plain;h=e9ff33f6e604ece202373be3ac176064083d913e;p=thirdparty%2Fxfsprogs-dev.git xfs_db: fix nbits parameter in fa_ino[48] functions 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 Reviewed-by: Eric Sandeen Signed-off-by: Eric Sandeen --- diff --git a/db/faddr.c b/db/faddr.c index 81d69c94c..0127c5d1f 100644 --- a/db/faddr.c +++ b/db/faddr.c @@ -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;