]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
Btrfs: fix number of transaction units required to create symlink
authorFilipe Manana <fdmanana@suse.com>
Thu, 31 Dec 2015 18:16:29 +0000 (18:16 +0000)
committerSasha Levin <sasha.levin@oracle.com>
Wed, 13 Apr 2016 21:14:20 +0000 (17:14 -0400)
[ 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 <fdmanana@suse.com>
Signed-off-by: Sasha Levin <sasha.levin@oracle.com>
fs/btrfs/inode.c

index 2e9ffa42b1cf240df64e2d17f812cc88e44d3f3a..62af0d3b0e4f77c923d9f8556c2eee50364d5f3e 100644 (file)
@@ -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);