From: Josef Bacik <josef@redhat.com>
Date: Tue, 11 Oct 2011 18:18:24 +0000 (-0400)
Subject: Btrfs: fix the amount of space reserved for unlink
X-Git-Tag: v3.2-rc1~21^2~24^2~9
X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=e70bea5fe0e3d6355fd95674eaff5aa5a32f0564;p=users%2Fhch%2Fmisc.git

Btrfs: fix the amount of space reserved for unlink

Our unlink reservations were a bit much, we were reserving 10 and I only count 8
possible items we're touching, so comment what we're reserving for and fix the
count value.  Thanks,

Signed-off-by: Josef Bacik <josef@redhat.com>
---

diff --git a/fs/btrfs/inode.c b/fs/btrfs/inode.c
index 246397d8478f..1f013c5c36aa 100644
--- a/fs/btrfs/inode.c
+++ b/fs/btrfs/inode.c
@@ -2758,7 +2758,16 @@ static struct btrfs_trans_handle *__unlink_start_trans(struct inode *dir,
 	u64 ino = btrfs_ino(inode);
 	u64 dir_ino = btrfs_ino(dir);
 
-	trans = btrfs_start_transaction(root, 10);
+	/*
+	 * 1 for the possible orphan item
+	 * 1 for the dir item
+	 * 1 for the dir index
+	 * 1 for the inode ref
+	 * 1 for the inode ref in the tree log
+	 * 2 for the dir entries in the log
+	 * 1 for the inode
+	 */
+	trans = btrfs_start_transaction(root, 8);
 	if (!IS_ERR(trans) || PTR_ERR(trans) != -ENOSPC)
 		return trans;