From: Filipe Manana Date: Thu, 31 Dec 2015 18:16:29 +0000 (+0000) Subject: Btrfs: fix number of transaction units required to create symlink X-Git-Tag: v4.1.22~170 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=a1f535acffbd95ae6ae81656e8bba39af094c3f0;p=thirdparty%2Fkernel%2Fstable.git Btrfs: fix number of transaction units required to create symlink [ Upstream commit 9269d12b2d57d9e3d13036bb750762d1110d425c ] We weren't accounting for the insertion of an inline extent item for the symlink inode nor that we need to update the parent inode item (through the call to btrfs_add_nondir()). So fix this by including two more transaction units. Signed-off-by: Filipe Manana Signed-off-by: Sasha Levin --- diff --git a/fs/btrfs/inode.c b/fs/btrfs/inode.c index 2e9ffa42b1cf2..62af0d3b0e4f7 100644 --- a/fs/btrfs/inode.c +++ b/fs/btrfs/inode.c @@ -9518,9 +9518,11 @@ static int btrfs_symlink(struct inode *dir, struct dentry *dentry, /* * 2 items for inode item and ref * 2 items for dir items + * 1 item for updating parent inode item + * 1 item for the inline extent item * 1 item for xattr if selinux is on */ - trans = btrfs_start_transaction(root, 5); + trans = btrfs_start_transaction(root, 7); if (IS_ERR(trans)) return PTR_ERR(trans);