Re: [PATCH 1/2] open: new O_REGULAR flag support

From: Jeff Layton

Date: Sun Jan 25 2026 - 11:29:23 EST


On Sun, 2026-01-25 at 21:41 +0600, Dorjoy Chowdhury wrote:
> On Sun, Jan 25, 2026 at 8:40 PM Arnd Bergmann <arnd@xxxxxxxx> wrote:
> >
> > On Sun, Jan 25, 2026, at 15:14, Dorjoy Chowdhury wrote:
> >
> > > diff --git a/include/uapi/asm-generic/errno-base.h
> > > b/include/uapi/asm-generic/errno-base.h
> > > index 9653140bff92..ea9a96d30737 100644
> > > --- a/include/uapi/asm-generic/errno-base.h
> > > +++ b/include/uapi/asm-generic/errno-base.h
> > > @@ -36,5 +36,6 @@
> > > #define EPIPE 32 /* Broken pipe */
> > > #define EDOM 33 /* Math argument out of domain of func */
> > > #define ERANGE 34 /* Math result not representable */
> > > +#define ENOTREGULAR 35 /* Not a regular file */
> >
> > This clashes with EDEADLK on most architectures, or with
> > EAGAIN on alpha and ENOMSG on mips/parisc. You probably
> > need to pick the next free value in uapi/asm-generic/errno.h
> > and arch/*/include/uapi/asm/errno.h and keep this sorted
> > after EHWPOISON if you can't find an existing error code.
> >
>
> Thanks for pointing this out. I will fix up in v2 along with other
> comments (if any). I looked at the existing error codes in
> uapi/asm-generic/errno.h and didn't notice anything that I could
> reuse. So if I understand correctly, I will need this new error code
> in both uapi/asm-generic/errno.h (not in errno-base.h) and in
> arch/*/include/uapi/asm/errno.h (I see some parallel
> tools/arch/*/include/uapi/asm/errno.h files too) just after EHWPOISON,
> right?
>

nit: Can we call this this ENOTREG instead of ENOTREGULAR? That seems
like it would read better alongside ENOTDIR and I hate extra typing.

> > > diff --git a/include/uapi/asm-generic/fcntl.h b/include/uapi/asm-generic/fcntl.h
> > > index 613475285643..11e5eadab868 100644
> > > --- a/include/uapi/asm-generic/fcntl.h
> > > +++ b/include/uapi/asm-generic/fcntl.h
> > > @@ -88,6 +88,10 @@
> > > #define __O_TMPFILE 020000000
> > > #endif
> > >
> > > +#ifndef O_REGULAR
> > > +#define O_REGULAR 040000000
> > > +#endif
> >
> > This in turn clashes with O_PATH on alpha, __O_TMPFILE on
> > parisc, and __O_SYNC on sparc. We can probably fill the holes
> > in asm/fcntl.h to define this.
> >
>
> And for this, I will need to just define O_REGULAR in alpha, parisc
> and sparc too, right?
> Good catch on the sparc file, some are octal, some are hexadecimal,
> easy to miss. Thanks!
>
>

--
Jeff Layton <jlayton@xxxxxxxxxx>