summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLiu Bo <bo.li.liu@oracle.com>2013-03-13 07:43:03 -0600
committerChris Mason <chris.mason@fusionio.com>2013-03-14 14:57:30 -0400
commit7c2ec3f0730729f4829d01f7c19538d135f86712 (patch)
tree562a221897694067b4846233e2a7cf0dbc23aea1
parent720f1e2060138855b4a1b1e8aa642f9c7feb6750 (diff)
downloadlinux-3.10-7c2ec3f0730729f4829d01f7c19538d135f86712.tar.gz
linux-3.10-7c2ec3f0730729f4829d01f7c19538d135f86712.tar.bz2
linux-3.10-7c2ec3f0730729f4829d01f7c19538d135f86712.zip
Btrfs: fix warning when creating snapshots
Creating snapshot passes extent_root to commit its transaction, but it can lead to the warning of checking root for quota in the __btrfs_end_transaction() when someone else is committing the current transaction. Since we've recorded the needed root in trans_handle, just use it to get rid of the warning. Signed-off-by: Liu Bo <bo.li.liu@oracle.com> Signed-off-by: Chris Mason <chris.mason@fusionio.com>
-rw-r--r--fs/btrfs/transaction.c11
1 files changed, 5 insertions, 6 deletions
diff --git a/fs/btrfs/transaction.c b/fs/btrfs/transaction.c
index fedede1fe17..c4a1531c52d 100644
--- a/fs/btrfs/transaction.c
+++ b/fs/btrfs/transaction.c
@@ -626,14 +626,13 @@ static int __btrfs_end_transaction(struct btrfs_trans_handle *trans,
btrfs_trans_release_metadata(trans, root);
trans->block_rsv = NULL;
- /*
- * the same root has to be passed to start_transaction and
- * end_transaction. Subvolume quota depends on this.
- */
- WARN_ON(trans->root != root);
if (trans->qgroup_reserved) {
- btrfs_qgroup_free(root, trans->qgroup_reserved);
+ /*
+ * the same root has to be passed here between start_transaction
+ * and end_transaction. Subvolume quota depends on this.
+ */
+ btrfs_qgroup_free(trans->root, trans->qgroup_reserved);
trans->qgroup_reserved = 0;
}