summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--fs/btrfs/extent-tree.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/fs/btrfs/extent-tree.c b/fs/btrfs/extent-tree.c
index b3a26b61f937..5e3877a42ee6 100644
--- a/fs/btrfs/extent-tree.c
+++ b/fs/btrfs/extent-tree.c
@@ -1785,13 +1785,15 @@ static int run_one_delayed_ref(struct btrfs_trans_handle *trans,
btrfs_err(fs_info, "unexpected delayed ref node type: %u", node->type);
}
- if (ret && insert_reserved)
- btrfs_pin_extent(trans, node->bytenr, node->num_bytes);
- if (ret < 0)
+ if (unlikely(ret)) {
+ if (insert_reserved)
+ btrfs_pin_extent(trans, node->bytenr, node->num_bytes);
btrfs_err(fs_info,
"failed to run delayed ref for logical %llu num_bytes %llu type %u action %u ref_mod %d: %d",
node->bytenr, node->num_bytes, node->type,
node->action, node->ref_mod, ret);
+ }
+
return ret;
}