From 9a7297aa28c7068951c94fa9bafe7120780061c9 Mon Sep 17 00:00:00 2001 From: Josef Bacik Date: Wed, 6 Feb 2013 16:55:41 -0500 Subject: [PATCH] --- yaml --- r: 360437 b: refs/heads/master c: e4a2bcaca9643e7430207810653222fc5187f2be h: refs/heads/master i: 360435: 134ea58d845c9b40f09cf7fc69cf989ba1a02226 v: v3 --- [refs] | 2 +- trunk/fs/btrfs/transaction.c | 18 ++++++++++++------ 2 files changed, 13 insertions(+), 7 deletions(-) diff --git a/[refs] b/[refs] index 246582f95c5e..c85a86039c49 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 3e04e7f10b68999e0d8321516ea19d9d5b044dee +refs/heads/master: e4a2bcaca9643e7430207810653222fc5187f2be diff --git a/trunk/fs/btrfs/transaction.c b/trunk/fs/btrfs/transaction.c index baf6d74fd0f2..5144ad19ef47 100644 --- a/trunk/fs/btrfs/transaction.c +++ b/trunk/fs/btrfs/transaction.c @@ -1476,21 +1476,25 @@ int btrfs_commit_transaction(struct btrfs_trans_handle *trans, ret = btrfs_run_ordered_operations(root, 0); if (ret) { btrfs_abort_transaction(trans, root, ret); - goto cleanup_transaction; + btrfs_end_transaction(trans, root); + return ret; } /* Stop the commit early if ->aborted is set */ if (unlikely(ACCESS_ONCE(cur_trans->aborted))) { ret = cur_trans->aborted; - goto cleanup_transaction; + btrfs_end_transaction(trans, root); + return ret; } /* make a pass through all the delayed refs we have so far * any runnings procs may add more while we are here */ ret = btrfs_run_delayed_refs(trans, root, 0); - if (ret) - goto cleanup_transaction; + if (ret) { + btrfs_end_transaction(trans, root); + return ret; + } btrfs_trans_release_metadata(trans, root); trans->block_rsv = NULL; @@ -1507,8 +1511,10 @@ int btrfs_commit_transaction(struct btrfs_trans_handle *trans, btrfs_create_pending_block_groups(trans, root); ret = btrfs_run_delayed_refs(trans, root, 0); - if (ret) - goto cleanup_transaction; + if (ret) { + btrfs_end_transaction(trans, root); + return ret; + } spin_lock(&cur_trans->commit_lock); if (cur_trans->in_commit) {