* [PATCH] Define ENOATTR in 2.5 kernels
@ 2002-08-02 17:25 Andreas Gruenbacher
2002-08-02 17:48 ` Robert Watson
0 siblings, 1 reply; 2+ messages in thread
From: Andreas Gruenbacher @ 2002-08-02 17:25 UTC (permalink / raw)
To: linux-kernel, bug-glibc
Cc: Andreas Jaeger, Andreas Schwab, Chris Mason, Jeff Mahoney,
Nathan Scott, Robert Watson, Thorsten Kukuk, Tim Shimmin
[-- Attachment #1: Type: text/plain, Size: 1169 bytes --]
Hello,
we already have a number of Extended Attribute system calls (*xattr) in the
2.5.x kernel. For implement them on file systems we also need the ENOATTR
error. It makes little sense to reuse an existing error number as glibc's
strerror() wouldn't be able to create an intelligent text message.
ENOATTR also exists on Irix and AIX. Error messages for ENOATTR should be
added to glibc once ENOATTR is defined in the kernel. I have attached a patch
against glibc that adds the English error text.
In addition to ENOATTR we also need to clarify the ENOTSUP / EOPNOTSUPP /
ENOTSUPP issue, which I have posted yesterday (with no comments so far).
For details concerning the xattr system calls you may find the manual pages
interesting, which are available as part of the attr-devel package, and
online at <http://acl.bestbits.at/man/man.shtml>.
Regards,
Andreas.
------------------------------------------------------------------
Andreas Gruenbacher SuSE Linux AG
mailto:agruen@suse.de Deutschherrnstr. 15-19
http://www.suse.de/ D-90429 Nuernberg, Germany
[-- Attachment #2: linux-2.5.30-enoattr-0.diff --]
[-- Type: text/x-diff, Size: 764 bytes --]
Add the ENOATTR error number ("No such attribute")
The ENOATTR error number is needed by the file system specific code that
implements Extended Attributes. This error can occur when trying to retrieve,
replace (XATTR_REPLACE flag) or delete an attribute that does not exist.
--- linux-2.5.30/include/linux/errno.h.orig Fri Aug 2 15:17:14 2002
+++ linux-2.5.30/include/linux/errno.h Fri Aug 2 15:17:17 2002
@@ -11,6 +11,9 @@
#define ERESTARTNOHAND 514 /* restart if no handler.. */
#define ENOIOCTLCMD 515 /* No ioctl command */
+/* Extended Attributes */
+#define ENOATTR 516 /* No such attribute */
+
/* Defined for the NFSv3 protocol */
#define EBADHANDLE 521 /* Illegal NFS file handle */
#define ENOTSYNC 522 /* Update synchronization mismatch */
[-- Attachment #3: glibc-enoattr-0.diff --]
[-- Type: text/x-diff, Size: 719 bytes --]
--- glibc-2.2/sysdeps/gnu/errlist.c.orig Tue Jul 30 10:17:08 2002
+++ glibc-2.2/sysdeps/gnu/errlist.c Tue Jul 30 10:30:04 2002
@@ -607,6 +607,14 @@
TRANS for information on process groups and these signals. */
[ERR_REMAP (EBACKGROUND)] = N_("Inappropriate operation for background process"),
#endif
+#ifdef ENOATTR
+/*
+TRANS No such attribute. The named Extended Attribute does not exist, or the
+TRANS process does not have permission to access the attribute. This error
+TRANS is used by the getxattr, setxattr and removexattr system calls.
+TRANS */
+ [ERR_REMAP (ENOATTR)] = N_("No such attribute"),
+#endif
#ifdef EDIED
/*
TRANS In the GNU system, opening a file returns this error when the file is
^ permalink raw reply [flat|nested] 2+ messages in thread* Re: [PATCH] Define ENOATTR in 2.5 kernels
2002-08-02 17:25 [PATCH] Define ENOATTR in 2.5 kernels Andreas Gruenbacher
@ 2002-08-02 17:48 ` Robert Watson
0 siblings, 0 replies; 2+ messages in thread
From: Robert Watson @ 2002-08-02 17:48 UTC (permalink / raw)
To: Andreas Gruenbacher
Cc: linux-kernel, bug-glibc, Andreas Jaeger, Andreas Schwab,
Chris Mason, Jeff Mahoney, Nathan Scott, Thorsten Kukuk,
Tim Shimmin
On Fri, 2 Aug 2002, Andreas Gruenbacher wrote:
> we already have a number of Extended Attribute system calls (*xattr) in
> the 2.5.x kernel. For implement them on file systems we also need the
> ENOATTR error. It makes little sense to reuse an existing error number
> as glibc's strerror() wouldn't be able to create an intelligent text
> message.
>
> ENOATTR also exists on Irix and AIX. Error messages for ENOATTR should
> be added to glibc once ENOATTR is defined in the kernel. I have attached
> a patch against glibc that adds the English error text.
>
> In addition to ENOATTR we also need to clarify the ENOTSUP / EOPNOTSUPP
> / ENOTSUPP issue, which I have posted yesterday (with no comments so
> far).
>
> For details concerning the xattr system calls you may find the manual
> pages interesting, which are available as part of the attr-devel
> package, and online at <http://acl.bestbits.at/man/man.shtml>.
FreeBSD 5.0-RELEASE, recent OpenBSD, and future Darwin/Mac OS X will use
ENOATTR in the following formulation listed in errno(2):
87 ENOATTR Attribute not found. The specified extended attribute does
not exist.
The English language text for ENOATTR generated by libc for strerror(3)
and friends is "Attribute not found".
ENOATTR will be returned when a read attempt is performed on an extended
attribute (namespace, name) that is not defined for the specified object.
Currently these systems use EOPNOTSUPP to indicate that the extended
attribute service is not available for the specified target object. I
believe that all of these systems define ENOTSUP as EOPNOTSUPP:
sproing:~> grep EOPNOT /usr/include/errno.h
#define EOPNOTSUPP 45 /* Operation not supported */
#define ENOTSUP EOPNOTSUPP /* Operation not supported */
In general, BSD VFS's return EOPNOTSUPP when VFS or vnode operations
attempted on an object are not defined/supported for the file system.
Other errors may take precedent over EOPNOTSUPP--for example, you might
get EISDIR if you attempt a file operation on a directory yet do it on a
file system that doesn't support the file operation, since that syntactic
check is performed at a higher level in the file system code.
Robert N M Watson FreeBSD Core Team, TrustedBSD Projects
robert@fledge.watson.org Network Associates Laboratories
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2002-08-02 17:47 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2002-08-02 17:25 [PATCH] Define ENOATTR in 2.5 kernels Andreas Gruenbacher
2002-08-02 17:48 ` Robert Watson
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.