48 lines
1.6 KiB
Diff
48 lines
1.6 KiB
Diff
From e9ff33f6e604ece202373be3ac176064083d913e Mon Sep 17 00:00:00 2001
|
|
From: "Darrick J. Wong" <djwong@kernel.org>
|
|
Date: Fri, 25 Feb 2022 17:42:16 -0500
|
|
Subject: [PATCH] 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 <djwong@kernel.org>
|
|
Reviewed-by: Eric Sandeen <sandeen@redhat.com>
|
|
Signed-off-by: Eric Sandeen <sandeen@sandeen.net>
|
|
---
|
|
db/faddr.c | 6 ++++--
|
|
1 file changed, 4 insertions(+), 2 deletions(-)
|
|
|
|
diff --git a/db/faddr.c b/db/faddr.c
|
|
index 81d69c9..0127c5d 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;
|
|
--
|
|
1.8.3.1
|
|
|