btrfs: use btrfs_del_item() at del_logged_dentry()
authorFilipe Manana <fdmanana@suse.com>
Thu, 29 May 2025 15:12:45 +0000 (16:12 +0100)
committerDavid Sterba <dsterba@suse.com>
Mon, 21 Jul 2025 21:53:29 +0000 (23:53 +0200)
There's no need to use btrfs_delete_one_dir_name() at del_logged_dentry()
because we are processing a dir index key which can contain only a single
name, unlike dir item keys which can encode multiple names in case of name
hash collisions. We have explicitly looked up for a dir index key by
calling btrfs_lookup_dir_index_item() and we don't log dir item keys
anymore (since commit 339d03542484 ("btrfs: only copy dir index keys when
logging a directory")). So simplify and use btrfs_del_item() directly
instead of btrfs_delete_one_dir_name().

Reviewed-by: Boris Burkov <boris@bur.io>
Signed-off-by: Filipe Manana <fdmanana@suse.com>
Reviewed-by: David Sterba <dsterba@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
fs/btrfs/tree-log.c

index 9420568131ab55cd0b62ffbbbde7065824eac3b2..cb20f124812a99a34f75424ab1c7e22aa6c890e4 100644 (file)
@@ -3432,7 +3432,7 @@ static int del_logged_dentry(struct btrfs_trans_handle *trans,
         * inode item because on log replay we update the field to reflect
         * all existing entries in the directory (see overwrite_item()).
         */
-       return btrfs_delete_one_dir_name(trans, log, path, di);
+       return btrfs_del_item(trans, log, path);
 }
 
 /*