]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
Btrfs: delay iput when deleting a block group
authorJosef Bacik <josef@redhat.com>
Mon, 19 Sep 2011 16:26:24 +0000 (12:26 -0400)
committerChris Mason <chris.mason@oracle.com>
Wed, 16 Nov 2011 02:20:22 +0000 (21:20 -0500)
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 <josef@redhat.com>
(cherry picked from commit 455757c322cc0a0f2a692c5625dd88aaf6a7b889)

fs/btrfs/extent-tree.c

index 3fac7dd4a438584b3403fd78e42a90c32fb1c023..a66a59c035a451d0bda180b48a0e159eebfc1e4e 100644 (file)
@@ -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;