Module Name: src Committed By: drochner Date: Wed Nov 9 18:29:28 UTC 2011
Modified Files: src/sys/kern: vfs_xattr.c Log Message: for the *xattr() calls, return ENOTSUP rather than EOPNOTSUPP if the filesystem doesn't support extended attributes -- this is how it is documented in Linux manpages (on Linux itself, ENOTSUP and EOPNOTSUPP are the same value) approved by Emmanuel Dreyfus To generate a diff of this commit: cvs rdiff -u -r1.28 -r1.29 src/sys/kern/vfs_xattr.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/kern/vfs_xattr.c diff -u src/sys/kern/vfs_xattr.c:1.28 src/sys/kern/vfs_xattr.c:1.29 --- src/sys/kern/vfs_xattr.c:1.28 Fri Jul 22 12:46:18 2011 +++ src/sys/kern/vfs_xattr.c Wed Nov 9 18:29:28 2011 @@ -1,4 +1,4 @@ -/* $NetBSD: vfs_xattr.c,v 1.28 2011/07/22 12:46:18 manu Exp $ */ +/* $NetBSD: vfs_xattr.c,v 1.29 2011/11/09 18:29:28 drochner Exp $ */ /*- * Copyright (c) 2005, 2008 The NetBSD Foundation, Inc. @@ -68,7 +68,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: vfs_xattr.c,v 1.28 2011/07/22 12:46:18 manu Exp $"); +__KERNEL_RCSID(0, "$NetBSD: vfs_xattr.c,v 1.29 2011/11/09 18:29:28 drochner Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -786,6 +786,8 @@ xattr_native(const char *key) { } #undef MATCH_NS +#define XATTR_ERRNO(e) ((e) == EOPNOTSUPP ? ENOTSUP : (e)) + int sys_setxattr(struct lwp *l, const struct sys_setxattr_args *uap, register_t *retval) { @@ -821,7 +823,7 @@ sys_setxattr(struct lwp *l, const struct vrele(vp); out: *retval = (error == 0) ? 0 : -1; - return (error); + return (XATTR_ERRNO(error)); } int @@ -859,7 +861,7 @@ sys_lsetxattr(struct lwp *l, const struc vrele(vp); out: *retval = (error == 0) ? 0 : -1; - return (error); + return (XATTR_ERRNO(error)); } int @@ -898,7 +900,7 @@ sys_fsetxattr(struct lwp *l, const struc fd_putfile(SCARG(uap, fd)); out: *retval = (error == 0) ? 0 : -1; - return (error); + return (XATTR_ERRNO(error)); } int @@ -931,7 +933,7 @@ sys_getxattr(struct lwp *l, const struct attrname, SCARG(uap, value), SCARG(uap, size), l, retval); vrele(vp); - return (error); + return (XATTR_ERRNO(error)); } int @@ -964,7 +966,7 @@ sys_lgetxattr(struct lwp *l, const struc attrname, SCARG(uap, value), SCARG(uap, size), l, retval); vrele(vp); - return (error); + return (XATTR_ERRNO(error)); } int @@ -998,7 +1000,7 @@ sys_fgetxattr(struct lwp *l, const struc attrname, SCARG(uap, value), SCARG(uap, size), l, retval); fd_putfile(SCARG(uap, fd)); - return (error); + return (XATTR_ERRNO(error)); } int @@ -1051,7 +1053,7 @@ sys_listxattr(struct lwp *l, const struc out: vrele(vp); - return (error); + return (XATTR_ERRNO(error)); } int @@ -1102,7 +1104,7 @@ sys_llistxattr(struct lwp *l, const stru *retval = listsize_usr + listsize_sys; out: vrele(vp); - return (error); + return (XATTR_ERRNO(error)); } int @@ -1156,7 +1158,7 @@ sys_flistxattr(struct lwp *l, const stru out: fd_putfile(SCARG(uap, fd)); - return (error); + return (XATTR_ERRNO(error)); } int @@ -1186,7 +1188,7 @@ sys_removexattr(struct lwp *l, const str error = extattr_delete_vp(vp, namespace, attrname, l); vrele(vp); - return (error); + return (XATTR_ERRNO(error)); } int @@ -1216,7 +1218,7 @@ sys_lremovexattr(struct lwp *l, const st error = extattr_delete_vp(vp, namespace, attrname, l); vrele(vp); - return (error); + return (XATTR_ERRNO(error)); } int @@ -1247,5 +1249,5 @@ sys_fremovexattr(struct lwp *l, const st error = extattr_delete_vp(vp, namespace, attrname, l); fd_putfile(SCARG(uap, fd)); - return (error); + return (XATTR_ERRNO(error)); }