In check_dir_item, we are going to search corresponding
dir_item/index.
Commit 564901eac7a4 ("btrfs-progs: check: introduce
print_dir_item_err()") Changed argument name from key to di_key but
forgot to change the key name for dir_item search.
So @key shouldn't be used here. It should be @di_key.
Change comment about parameters too.
To keep compactness, move declarations into while loop in
check_dir_item().
Fixes: 564901eac7a4 ("btrfs-progs: check: introduce print_dir_item_err()")
Signed-off-by: Su Yue <suy.fnst@xxxxxxxxxxxxxx>
---
check/mode-lowmem.c | 22 +++++++++++-----------
1 file changed, 11 insertions(+), 11 deletions(-)
diff --git a/check/mode-lowmem.c b/check/mode-lowmem.c
index 1bce44f5658a..4db12cc7f9fe 100644
--- a/check/mode-lowmem.c
+++ b/check/mode-lowmem.c
@@ -1529,7 +1529,7 @@ static void print_dir_item_err(struct btrfs_root *root, struct btrfs_key *key,
* call find_inode_ref() to check related INODE_REF/INODE_EXTREF.
*
* @root: the root of the fs/file tree
- * @key: the key of the INODE_REF/INODE_EXTREF
+ * @di_key: the key of the dir_item/dir_index
* @path: the path
* @size: the st_size of the INODE_ITEM
*
@@ -1540,20 +1540,11 @@ static int check_dir_item(struct btrfs_root *root, struct btrfs_key *di_key,
struct btrfs_path *path, u64 *size)
{
struct btrfs_dir_item *di;
- struct btrfs_inode_item *ii;
- struct btrfs_key key;
- struct btrfs_key location;
struct extent_buffer *node;
int slot;
char namebuf[BTRFS_NAME_LEN] = {0};
u32 total;
u32 cur = 0;
- u32 len;
- u32 name_len;
- u32 data_len;
- u8 filetype;
- u32 mode = 0;
- u64 index;
int ret;
int err;
int tmp_err;
@@ -1588,6 +1579,15 @@ begin:
memset(namebuf, 0, sizeof(namebuf) / sizeof(*namebuf));
while (cur < total) {
+ struct btrfs_inode_item *ii;
+ struct btrfs_key key;
+ struct btrfs_key location;
+ u8 filetype;
+ u32 data_len;
+ u32 name_len;
+ u32 len;
+ u32 mode = 0;
+ u64 index;
/*
* For DIR_ITEM set index to (u64)-1, so that find_inode_ref
* ignore index check.
@@ -1658,7 +1658,7 @@ begin:
/* check relative INDEX/ITEM */
key.objectid = di_key->objectid;
- if (key.type == BTRFS_DIR_ITEM_KEY) {
+ if (di_key->type == BTRFS_DIR_ITEM_KEY) {
key.type = BTRFS_DIR_INDEX_KEY;
key.offset = index;
} else {
--
2.17.1