tech-toolchain archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: [PATCH] PR standards/44921: Add errno consts for robust mutexes



In article <b2fecb23889f943f47da9c12a4fe1f74aa998a64.camel%gentoo.org@localhost>,
MichaŠ Górny  <mgorny%gentoo.org@localhost> wrote:
>-=-=-=-=-=-
>
>On Tue, 2020-03-03 at 13:51 +0100, Joerg Sonnenberger wrote:
>> On Tue, Mar 03, 2020 at 10:02:27AM +0100, MichaÅ? Górny wrote:
>> > Add the two missing errno.h constants: EOWNERDEAD and ENOTRECOVERABLE.
>> > While technically they're used for robust mutexes which we do not
>> > support at the moment, they are listed in POSIX and used by libc++.
>> > While libc++ can be made to build without it, it just locally redefines
>> > the values then, so we may as well define them globally.
>> 
>> This patch is certainly incompletely, ranging from missing handling in
>> NFS, dtrace to the libc message catalog...
>> 
>
>Ok, I've added it to the manpage, libstdc++, rump.  However, could you
>elaborate on NFS and dtrace?
>
>By dtrace, do you mean external/cddl/osnet/lib/libdtrace/errno.d ?  If
>so, could you help me understand what I'm supposed to do with that file?
>It seems that these constants diverge from errno.h so I'm not sure if
>I'm supposed to use the next free numbers or...

Fix it :-) The constants are the FreeBSD ones (EDOOFUS).

>As for NFS, I haven't been able to grep anything relevant.

You need to add them to the array, and see if the new errors are appropriate
for any other RPC-specific returns (I am guessing not).

/*
 * Maps errno values to nfs error numbers.
 * Use NFSERR_IO as the catch all for ones not specifically defined in
 * RFC 1094.
 */
static const u_char nfsrv_v2errmap[ELAST] = {
  NFSERR_PERM,  NFSERR_NOENT,   NFSERR_IO,      NFSERR_IO,      NFSERR_IO,
  NFSERR_NXIO,  NFSERR_IO,      NFSERR_IO,      NFSERR_IO,      NFSERR_IO,
  NFSERR_IO,    NFSERR_IO,      NFSERR_ACCES,   NFSERR_IO,      NFSERR_IO,
  NFSERR_IO,    NFSERR_EXIST,   NFSERR_IO,      NFSERR_NODEV,   NFSERR_NOTDIR,
  NFSERR_ISDIR, NFSERR_IO,      NFSERR_IO,      NFSERR_IO,      NFSERR_IO,
  NFSERR_IO,    NFSERR_FBIG,    NFSERR_NOSPC,   NFSERR_IO,      NFSERR_ROFS,
  NFSERR_IO,    NFSERR_IO,      NFSERR_IO,      NFSERR_IO,      NFSERR_IO,
  NFSERR_IO,    NFSERR_IO,      NFSERR_IO,      NFSERR_IO,      NFSERR_IO,
  NFSERR_IO,    NFSERR_IO,      NFSERR_IO,      NFSERR_IO,      NFSERR_IO,
  NFSERR_IO,    NFSERR_IO,      NFSERR_IO,      NFSERR_IO,      NFSERR_IO,
  NFSERR_IO,    NFSERR_IO,      NFSERR_IO,      NFSERR_IO,      NFSERR_IO,
  NFSERR_IO,    NFSERR_IO,      NFSERR_IO,      NFSERR_IO,      NFSERR_IO,
  NFSERR_IO,    NFSERR_IO,      NFSERR_NAMETOL, NFSERR_IO,      NFSERR_IO,
  NFSERR_NOTEMPTY, NFSERR_IO,   NFSERR_IO,      NFSERR_DQUOT,   NFSERR_STALE,
  NFSERR_IO,    NFSERR_IO,      NFSERR_IO,      NFSERR_IO,      NFSERR_IO,
  NFSERR_IO,    NFSERR_IO,      NFSERR_IO,      NFSERR_IO,      NFSERR_IO,
  NFSERR_IO,    NFSERR_IO,
};

christos



Home | Main Index | Thread Index | Old Index