|
@@ -818,6 +818,25 @@ int btrfs_should_end_transaction(struct btrfs_trans_handle *trans)
|
|
|
return should_end_transaction(trans);
|
|
|
}
|
|
|
|
|
|
+static void btrfs_trans_release_metadata(struct btrfs_trans_handle *trans,
|
|
|
+ struct btrfs_fs_info *fs_info)
|
|
|
+{
|
|
|
+ if (!trans->block_rsv) {
|
|
|
+ ASSERT(!trans->bytes_reserved);
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ if (!trans->bytes_reserved)
|
|
|
+ return;
|
|
|
+
|
|
|
+ ASSERT(trans->block_rsv == &fs_info->trans_block_rsv);
|
|
|
+ trace_btrfs_space_reservation(fs_info, "transaction",
|
|
|
+ trans->transid, trans->bytes_reserved, 0);
|
|
|
+ btrfs_block_rsv_release(fs_info, trans->block_rsv,
|
|
|
+ trans->bytes_reserved);
|
|
|
+ trans->bytes_reserved = 0;
|
|
|
+}
|
|
|
+
|
|
|
static int __btrfs_end_transaction(struct btrfs_trans_handle *trans,
|
|
|
int throttle)
|
|
|
{
|