]> www.infradead.org Git - users/jedix/linux-maple.git/commit
Btrfs: make sure to unset trans->block_rsv before running delayed refs
authorJosef Bacik <josef@redhat.com>
Mon, 19 Sep 2011 15:58:54 +0000 (11:58 -0400)
committerChris Mason <chris.mason@oracle.com>
Wed, 16 Nov 2011 02:20:22 +0000 (21:20 -0500)
commitda2a56afcd1ee383c20fb44a43e6dfd8671bbd56
tree052df1f9f78881ed682cf2b891b08c386c1ddf59
parentcfbe3cce3348b98781e4f82ab24dbd7ac6763a0e
Btrfs: make sure to unset trans->block_rsv before running delayed refs

Checksums are charged in 2 different ways.  The first case is when we're writing
to the disk, we account for the new checksums with the delalloc block rsv.  In
order for this to work we check if we're allocating a block for the csum root
and if trans->block_rsv == the delalloc block rsv.  But when we're deleting the
csums because of cow, this is charged to the global block rsv, and is done when
we run the delayed refs.  So we need to make sure that trans->block_rsv == NULL
when running the delayed refs.  So set it to NULL and reset it in
should_end_transaction, and set it to NULL in commit_transaction.  This got rid
of the ridiculous amount of warnings I was seeing when trying to do a balance.
Thanks,

Signed-off-by: Josef Bacik <josef@redhat.com>
(cherry picked from commit 9c8d86db9aee6f85866d480e0f9b37817264814c)
fs/btrfs/transaction.c