btrfs: handle directory and dentry mismatch in btrfs_may_delete()
authorDavid Sterba <dsterba@suse.com>
Fri, 19 Jan 2024 19:23:56 +0000 (20:23 +0100)
committerDavid Sterba <dsterba@suse.com>
Mon, 4 Mar 2024 15:24:47 +0000 (16:24 +0100)
commit1686570265559ebfa828c1b784a31407ec2877bd
tree060385576045577d3bf3bc07ba8f7d0cd3e2b7c3
parent4dc4a3be6cc4ef0a04785124afb0bd4fd06298ff
btrfs: handle directory and dentry mismatch in btrfs_may_delete()

The helper btrfs_may_delete() is a copy of generic fs/namei.c:may_delete()
to verify various conditions before deletion. There's a BUG_ON added
before linux.git started, we can turn it to a proper error handling
at least in our local helper. A mistmatch between directory and the
deleted dentry is clearly invalid.

This won't be probably ever hit due to the way how the parameters are
set from the caller btrfs_ioctl_snap_destroy(), using a VFS helper
lookup_one().

Reviewed-by: Josef Bacik <josef@toxicpanda.com>
Reviewed-by: Anand Jain <anand.jain@oracle.com>
Signed-off-by: David Sterba <dsterba@suse.com>
fs/btrfs/ioctl.c