diff options
-rw-r--r-- | fs/btrfs/ioctl.c | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/fs/btrfs/ioctl.c b/fs/btrfs/ioctl.c index 3970f32b2b80..332b624e25db 100644 --- a/fs/btrfs/ioctl.c +++ b/fs/btrfs/ioctl.c | |||
@@ -436,7 +436,9 @@ static noinline int create_subvol(struct inode *dir, | |||
436 | trans = btrfs_start_transaction(root, 0); | 436 | trans = btrfs_start_transaction(root, 0); |
437 | if (IS_ERR(trans)) { | 437 | if (IS_ERR(trans)) { |
438 | ret = PTR_ERR(trans); | 438 | ret = PTR_ERR(trans); |
439 | goto out; | 439 | btrfs_subvolume_release_metadata(root, &block_rsv, |
440 | qgroup_reserved); | ||
441 | return ret; | ||
440 | } | 442 | } |
441 | trans->block_rsv = &block_rsv; | 443 | trans->block_rsv = &block_rsv; |
442 | trans->bytes_reserved = block_rsv.size; | 444 | trans->bytes_reserved = block_rsv.size; |
@@ -561,6 +563,8 @@ static noinline int create_subvol(struct inode *dir, | |||
561 | fail: | 563 | fail: |
562 | trans->block_rsv = NULL; | 564 | trans->block_rsv = NULL; |
563 | trans->bytes_reserved = 0; | 565 | trans->bytes_reserved = 0; |
566 | btrfs_subvolume_release_metadata(root, &block_rsv, qgroup_reserved); | ||
567 | |||
564 | if (async_transid) { | 568 | if (async_transid) { |
565 | *async_transid = trans->transid; | 569 | *async_transid = trans->transid; |
566 | err = btrfs_commit_transaction_async(trans, root, 1); | 570 | err = btrfs_commit_transaction_async(trans, root, 1); |
@@ -574,14 +578,10 @@ fail: | |||
574 | 578 | ||
575 | if (!ret) { | 579 | if (!ret) { |
576 | inode = btrfs_lookup_dentry(dir, dentry); | 580 | inode = btrfs_lookup_dentry(dir, dentry); |
577 | if (IS_ERR(inode)) { | 581 | if (IS_ERR(inode)) |
578 | ret = PTR_ERR(inode); | 582 | return PTR_ERR(inode); |
579 | goto out; | ||
580 | } | ||
581 | d_instantiate(dentry, inode); | 583 | d_instantiate(dentry, inode); |
582 | } | 584 | } |
583 | out: | ||
584 | btrfs_subvolume_release_metadata(root, &block_rsv, qgroup_reserved); | ||
585 | return ret; | 585 | return ret; |
586 | } | 586 | } |
587 | 587 | ||