Re: [PATCH] btrfs: remove dead assignment to dirid in btrfs_search_path_in_tree()

From: Miquel Sabaté Solà

Date: Tue Feb 17 2026 - 05:18:09 EST


Hello,

Burenchev Evgenii @ 2026-02-16 16:16 GMT:

> From ff2df73ba6483b0dc67b3ed89d2a43c49f1c2eb8 Mon Sep 17 00:00:00 2001
> From: Evgenii Burenchev <eburenchev@xxxxxxxxxxxx>
> Date: Mon, 16 Feb 2026 18:39:30 +0300
> Subject: [PATCH] btrfs: remove dead assignment to dirid in
> btrfs_search_path_in_tree()
>
> After the introduction of btrfs_search_backwards(), the directory
> traversal state in btrfs_search_path_in_tree() is fully maintained via
> struct btrfs_key. The local variable 'dirid' is no longer used to control
> the search and the assignment
>
> dirid = key.objectid;
>
> has no observable effect and is dead code.
>
> Remove the unused assignment to avoid confusion and silence static
> analysis warnings.
>
> No functional change.
>
> Found by Linux Verification Center (linuxtesting.org) with SVACE.
>
> Signed-off-by: Evgenii Burenchev <eburenchev@xxxxxxxxxxxx>
> ---
> fs/btrfs/ioctl.c | 1 -
> 1 file changed, 1 deletion(-)
>
> diff --git a/fs/btrfs/ioctl.c b/fs/btrfs/ioctl.c
> index a6cc2d3b414c..292043b11207 100644
> --- a/fs/btrfs/ioctl.c
> +++ b/fs/btrfs/ioctl.c
> @@ -1708,7 +1708,6 @@ static noinline int btrfs_search_path_in_tree(struct btrfs_fs_info *info,
> btrfs_release_path(path);
> key.objectid = key.offset;
> key.offset = (u64)-1;
> - dirid = key.objectid;
> }
> memmove(name, ptr, total_len);
> name[total_len] = '\0';

I would add a Fixes tag with the commit that made this assignment
useless. As far as I can tell this is commit 98d377a0894e ("Btrfs: don't
miss inode ref items in BTRFS_IOC_INO_LOOKUP"), which made the update
inside of the loop of 'dirid' no longer needed. This way it's easier to
track from where this was no longer needed and whether that's really the
case.

Other than that, and taking a quick look at this function, I can already
tell that the 'ret' variable could be initialized to 0 in the beginning
and make the last assignment to it (just before the "out" label) not
needed. Hence, while we are at it, could you also remove that
assignment?

Cheers,
Miquel

Attachment: signature.asc
Description: PGP signature