diff --git a/ctree.h b/ctree.h index 4ad34f60..2818441f 100644 --- a/ctree.h +++ b/ctree.h @@ -1139,6 +1139,8 @@ struct btrfs_fs_info { unsigned int avoid_sys_chunk_alloc:1; unsigned int finalize_on_close:1; + int transaction_aborted; + int (*free_extent_hook)(struct btrfs_trans_handle *trans, struct btrfs_root *root, u64 bytenr, u64 num_bytes, u64 parent, diff --git a/transaction.c b/transaction.c index 6677a220..feca06b4 100644 --- a/transaction.c +++ b/transaction.c @@ -173,3 +173,7 @@ commit_tree: return 0; } +void btrfs_abort_transaction(struct btrfs_trans_handle *trans, int error) +{ + trans->fs_info->transaction_aborted = error; +} diff --git a/transaction.h b/transaction.h index ccbecce9..470ee3de 100644 --- a/transaction.h +++ b/transaction.h @@ -40,5 +40,6 @@ int commit_tree_roots(struct btrfs_trans_handle *trans, struct btrfs_fs_info *fs_info); int btrfs_commit_transaction(struct btrfs_trans_handle *trans, struct btrfs_root *root); +void btrfs_abort_transaction(struct btrfs_trans_handle *trans, int error); #endif