From 355a052647e3a3bab49dfea3f0281f0d5efae4ae Mon Sep 17 00:00:00 2001 From: David Sterba Date: Mon, 28 Aug 2017 17:44:41 +0200 Subject: [PATCH] btrfs-progs: start framework for transaction abort Signed-off-by: David Sterba --- ctree.h | 2 ++ transaction.c | 4 ++++ transaction.h | 1 + 3 files changed, 7 insertions(+) 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