btrfs: reserve correct number of items for unlink and rmdir
authorOmar Sandoval <osandov@fb.com>
Thu, 10 Mar 2022 01:31:31 +0000 (17:31 -0800)
committerDavid Sterba <dsterba@suse.com>
Mon, 16 May 2022 15:03:05 +0000 (17:03 +0200)
__btrfs_unlink_inode() calls btrfs_update_inode() on the parent
directory in order to update its size and sequence number. Make sure we
account for it.

Reviewed-by: Sweet Tea Dorminy <sweettea-kernel@dorminy.me>
Signed-off-by: Omar Sandoval <osandov@fb.com>
Signed-off-by: David Sterba <dsterba@suse.com>
fs/btrfs/inode.c

index 95c499b..3882592 100644 (file)
@@ -4199,8 +4199,9 @@ static struct btrfs_trans_handle *__unlink_start_trans(struct inode *dir)
         * 1 for the dir index
         * 1 for the inode ref
         * 1 for the inode
+        * 1 for the parent inode
         */
-       return btrfs_start_transaction_fallback_global_rsv(root, 5);
+       return btrfs_start_transaction_fallback_global_rsv(root, 6);
 }
 
 static int btrfs_unlink(struct inode *dir, struct dentry *dentry)