From: Filipe David Borba Manana <fdmanana@gmail.com>
Date: Wed, 27 Nov 2013 16:06:16 +0000 (+0000)
Subject: Btrfs: fix max dir item size calculation
X-Git-Tag: firefly_0821_release~176^2~3883^2~259
X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=878f2d2cb355da2dabbffb2ae51b7541a91ce4e3;p=firefly-linux-kernel-4.4.55.git

Btrfs: fix max dir item size calculation

We were accounting for sizeof(struct btrfs_item) twice, once
in the data_size variable and another time in the if statement
below.

Signed-off-by: Filipe David Borba Manana <fdmanana@gmail.com>
Signed-off-by: Josef Bacik <jbacik@fb.com>
Signed-off-by: Chris Mason <clm@fb.com>
---

diff --git a/fs/btrfs/dir-item.c b/fs/btrfs/dir-item.c
index c031ea3fd70f..9a89ceb25e83 100644
--- a/fs/btrfs/dir-item.c
+++ b/fs/btrfs/dir-item.c
@@ -261,7 +261,7 @@ int btrfs_check_dir_item_collision(struct btrfs_root *root, u64 dir,
 	 * see if there is room in the item to insert this
 	 * name
 	 */
-	data_size = sizeof(*di) + name_len + sizeof(struct btrfs_item);
+	data_size = sizeof(*di) + name_len;
 	leaf = path->nodes[0];
 	slot = path->slots[0];
 	if (data_size + btrfs_item_size_nr(leaf, slot) +