Re: [Lsf-pc] [LSF/MM/BPF TOPIC] tracing the source of errors

From: Gabriel Krisman Bertazi
Date: Thu Feb 08 2024 - 15:48:01 EST


Matthew Wilcox <willy@xxxxxxxxxxxxx> writes:

> Option (b)
>
> -#define EINVAL 22
> +#define E_INVAL 22
> +#define EINVAL ERR(E_INVAL)

Note there will surely be cases where EINVAL is used as a soft failure
and the kernel will just try something else, instead of propagating the
error up the stack. In this case, there is no point in logging the
first case of error, as it will just be expected behavior.

So there's really no way around explicitly annotating (ERR (EINVAL))
in place where it really matters, instead of changing the definition
of -EINVAL itself or automatically converting check sites.

>
> and then change all code that does something like:
>
> if (err == -EINVAL)
> to
> if (err == -E_INVAL)
>
> Or have I misunderstood?



--
Gabriel Krisman Bertazi