]> www.infradead.org Git - users/jedix/linux-maple.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)
committerChuck Anderson <chuck.anderson@oracle.com>
Thu, 26 May 2016 22:45:53 +0000 (15:45 -0700)
Orabug: 23331027

[ 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>
(cherry picked from commit a1f535acffbd95ae6ae81656e8bba39af094c3f0)

Signed-off-by: Dan Duval <dan.duval@oracle.com>
fs/btrfs/inode.c

index 1cfa27b3e6f17b2566ccf3f25c0b02eb82859296..155890a531b3129ad7d511b67978b7d2f0070905 100644 (file)
@@ -9515,9 +9515,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);