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 <[email protected]>
---
 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



Reply via email to