summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--transaction.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/transaction.c b/transaction.c
index feca06b4..ad705728 100644
--- a/transaction.c
+++ b/transaction.c
@@ -26,6 +26,9 @@ struct btrfs_trans_handle* btrfs_start_transaction(struct btrfs_root *root,
struct btrfs_fs_info *fs_info = root->fs_info;
struct btrfs_trans_handle *h = kzalloc(sizeof(*h), GFP_NOFS);
+ if (fs_info->transaction_aborted)
+ return ERR_PTR(-EROFS);
+
if (!h)
return ERR_PTR(-ENOMEM);
if (root->commit_root) {
@@ -141,6 +144,9 @@ int btrfs_commit_transaction(struct btrfs_trans_handle *trans,
int ret = 0;
struct btrfs_fs_info *fs_info = root->fs_info;
+ if (trans->fs_info->transaction_aborted)
+ return -EROFS;
+
if (root->commit_root == root->node)
goto commit_tree;
if (root == root->fs_info->tree_root)