diff options
author | Eric Sandeen <sandeen@redhat.com> | 2014-06-12 01:53:44 -0400 |
---|---|---|
committer | Chris Mason <clm@fb.com> | 2014-06-13 12:52:30 -0400 |
commit | 47a306a74842248dcd537b85f9a36c7b156c59a9 (patch) | |
tree | a0fdc3fdfd02c3804777a7322275529919f3564e /fs/btrfs/transaction.c | |
parent | 3e2426bd0eb980648449e7a2f5a23e3cd3c7725c (diff) |
btrfs: fix error handling in create_pending_snapshot
fcebe456 cut and pasted some code to a later point
in create_pending_snapshot(), but didn't switch
to the appropriate error handling for this stage
of the function.
Signed-off-by: Eric Sandeen <sandeen@redhat.com>
Signed-off-by: Chris Mason <clm@fb.com>
Diffstat (limited to 'fs/btrfs/transaction.c')
-rw-r--r-- | fs/btrfs/transaction.c | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/fs/btrfs/transaction.c b/fs/btrfs/transaction.c index 9630f10f8e1e..511839c04f11 100644 --- a/fs/btrfs/transaction.c +++ b/fs/btrfs/transaction.c | |||
@@ -1284,11 +1284,13 @@ static noinline int create_pending_snapshot(struct btrfs_trans_handle *trans, | |||
1284 | goto fail; | 1284 | goto fail; |
1285 | } | 1285 | } |
1286 | 1286 | ||
1287 | pending->error = btrfs_qgroup_inherit(trans, fs_info, | 1287 | ret = btrfs_qgroup_inherit(trans, fs_info, |
1288 | root->root_key.objectid, | 1288 | root->root_key.objectid, |
1289 | objectid, pending->inherit); | 1289 | objectid, pending->inherit); |
1290 | if (pending->error) | 1290 | if (ret) { |
1291 | goto no_free_objectid; | 1291 | btrfs_abort_transaction(trans, root, ret); |
1292 | goto fail; | ||
1293 | } | ||
1292 | 1294 | ||
1293 | /* see comments in should_cow_block() */ | 1295 | /* see comments in should_cow_block() */ |
1294 | set_bit(BTRFS_ROOT_FORCE_COW, &root->state); | 1296 | set_bit(BTRFS_ROOT_FORCE_COW, &root->state); |