Re: [RFC PATCH 28/30] Improved symbolic error names

From: Kent Overstreet
Date: Thu Sep 01 2022 - 19:27:02 EST


On Thu, Sep 01, 2022 at 04:19:35PM -0700, Joe Perches wrote:
> On Tue, 2022-08-30 at 14:49 -0700, Suren Baghdasaryan wrote:
> > From: Kent Overstreet <kent.overstreet@xxxxxxxxx>
> >
> > This patch adds per-error-site error codes, with error strings that
> > include their file and line number.
> >
> > To use, change code that returns an error, e.g.
> > return -ENOMEM;
> > to
> > return -ERR(ENOMEM);
> >
> > Then, errname() will return a string that includes the file and line
> > number of the ERR() call, for example
> > printk("Got error %s!\n", errname(err));
> > will result in
> > Got error ENOMEM at foo.c:1234
>
> Why? Something wrong with just using %pe ?
>
> printk("Got error %pe at %s:%d!\n", ERR_PTR(err), __FILE__, __LINE__);
>
> Likely __FILE__ and __LINE__ aren't particularly useful.

That doesn't do what this patchset does. If it only did that, it wouldn't make
much sense, would it? :)

With this patchset,
printk("Got error %pe!\n", ptr);

prints out a file and line number, but it's _not_ the file/line number of the
printk statement - it's the file/line number where the error originated!

:)