From: Josef Bacik Date: Mon, 19 Sep 2011 16:26:24 +0000 (-0400) Subject: Btrfs: delay iput when deleting a block group X-Git-Tag: v3.2-rc1~21^2~24^2~26 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=455757c322cc0a0f2a692c5625dd88aaf6a7b889;p=platform%2Fupstream%2Fkernel-adaptation-pc.git Btrfs: delay iput when deleting a block group I kept getting warnings from evict because we were calling btrfs_start_transaction() with a transaction already started when doing a balance. This is because we remove a block group which requires a transaction, and the put the last reference on the cache inode. Instead of doing this we need to delay the iput so it is done not within a transaction having started. This gets rid of our warnings. Thanks, Signed-off-by: Josef Bacik --- diff --git a/fs/btrfs/extent-tree.c b/fs/btrfs/extent-tree.c index 9bb7159..5498bda 100644 --- a/fs/btrfs/extent-tree.c +++ b/fs/btrfs/extent-tree.c @@ -7266,7 +7266,7 @@ int btrfs_remove_block_group(struct btrfs_trans_handle *trans, spin_unlock(&block_group->lock); } /* One for our lookup ref */ - iput(inode); + btrfs_add_delayed_iput(inode); } key.objectid = BTRFS_FREE_SPACE_OBJECTID;