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

Dan Carpenter posted 1 patch 3 weeks, 3 days ago
fs/btrfs/delayed-ref.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
[PATCH next] btrfs: fix error code in add_delayed_ref_head()
Posted by Dan Carpenter 3 weeks, 3 days ago
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@linaro.org>
---
 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
Re: [PATCH next] btrfs: fix error code in add_delayed_ref_head()
Posted by Filipe Manana 3 weeks, 3 days ago
On Thu, Oct 31, 2024 at 7:23 AM Dan Carpenter <dan.carpenter@linaro.org> wrote:
>
> 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@linaro.org>

Thanks, since it's not yet in Linus' tree and we're on time, I'll fold
it to the original patch.

> ---
>  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
>
>