diff options
author | Josef Bacik <josef@toxicpanda.com> | 2019-06-19 15:11:59 -0400 |
---|---|---|
committer | David Sterba <dsterba@suse.com> | 2019-07-04 17:26:17 +0200 |
commit | fb6dea26601b60e41d70c310537dd1e2617b25b6 (patch) | |
tree | 9437c0b0b8789280b85edf50af6969c4af47dd15 /fs/btrfs/transaction.c | |
parent | 6ef03debdb3d82d7deec65f96e143b9adcfb2cd4 (diff) | |
download | linux-fb6dea26601b60e41d70c310537dd1e2617b25b6.tar.bz2 |
btrfs: migrate btrfs_trans_release_chunk_metadata
Move this into transaction.c with the rest of the transaction related
code.
Signed-off-by: Josef Bacik <josef@toxicpanda.com>
Signed-off-by: David Sterba <dsterba@suse.com>
Diffstat (limited to 'fs/btrfs/transaction.c')
-rw-r--r-- | fs/btrfs/transaction.c | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/fs/btrfs/transaction.c b/fs/btrfs/transaction.c index 3f6811cdf803..3b8ae1a8f02d 100644 --- a/fs/btrfs/transaction.c +++ b/fs/btrfs/transaction.c @@ -129,6 +129,24 @@ static inline int extwriter_counter_read(struct btrfs_transaction *trans) } /* + * To be called after all the new block groups attached to the transaction + * handle have been created (btrfs_create_pending_block_groups()). + */ +void btrfs_trans_release_chunk_metadata(struct btrfs_trans_handle *trans) +{ + struct btrfs_fs_info *fs_info = trans->fs_info; + + if (!trans->chunk_bytes_reserved) + return; + + WARN_ON_ONCE(!list_empty(&trans->new_bgs)); + + btrfs_block_rsv_release(fs_info, &fs_info->chunk_block_rsv, + trans->chunk_bytes_reserved); + trans->chunk_bytes_reserved = 0; +} + +/* * either allocate a new transaction or hop into the existing one */ static noinline int join_transaction(struct btrfs_fs_info *fs_info, |