[PATCH next] btrfs: fix error code in add_delayed_ref_head()

From: Dan Carpenter
Date: Thu Oct 31 2024 - 03:23:46 EST


xa_err errors are equivalent to "error_code * 4 + 2". We want to return
error pointers here so we can't just cast them back and forth. Use
xa_err() to do the conversion.

Fixes: 6d50990e6be2 ("btrfs: track delayed ref heads in an xarray")
Signed-off-by: Dan Carpenter <dan.carpenter@xxxxxxxxxx>
---
fs/btrfs/delayed-ref.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/fs/btrfs/delayed-ref.c b/fs/btrfs/delayed-ref.c
index 1f97e1e5c66c..012fce255866 100644
--- a/fs/btrfs/delayed-ref.c
+++ b/fs/btrfs/delayed-ref.c
@@ -848,7 +848,7 @@ add_delayed_ref_head(struct btrfs_trans_handle *trans,
if (xa_is_err(existing)) {
/* Memory was preallocated by the caller. */
ASSERT(xa_err(existing) != -ENOMEM);
- return ERR_CAST(existing);
+ return ERR_PTR(xa_err(existing));
} else if (WARN_ON(existing)) {
/*
* Shouldn't happen we just did a lookup before under
--
2.45.2