Module Name: src
Committed By: chs
Date: Tue Dec 14 11:06:50 UTC 2021
Modified Files:
src/sys/ufs/ffs: ffs_extattr.c
Log Message:
ffs: fix the creation of device nodes on file systems with ACLs enabled.
To generate a diff of this commit:
cvs rdiff -u -r1.7 -r1.8 src/sys/ufs/ffs/ffs_extattr.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/ufs/ffs/ffs_extattr.c
diff -u src/sys/ufs/ffs/ffs_extattr.c:1.7 src/sys/ufs/ffs/ffs_extattr.c:1.8
--- src/sys/ufs/ffs/ffs_extattr.c:1.7 Sat Sep 5 16:30:13 2020
+++ src/sys/ufs/ffs/ffs_extattr.c Tue Dec 14 11:06:50 2021
@@ -1,4 +1,4 @@
-/* $NetBSD: ffs_extattr.c,v 1.7 2020/09/05 16:30:13 riastradh Exp $ */
+/* $NetBSD: ffs_extattr.c,v 1.8 2021/12/14 11:06:50 chs Exp $ */
/*-
* SPDX-License-Identifier: (BSD-2-Clause-FreeBSD AND BSD-3-Clause)
@@ -66,7 +66,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: ffs_extattr.c,v 1.7 2020/09/05 16:30:13 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ffs_extattr.c,v 1.8 2021/12/14 11:06:50 chs Exp $");
#if defined(_KERNEL_OPT)
#include "opt_ffs.h"
@@ -587,8 +587,10 @@ ffs_openextattr(void *v)
if (fs->fs_magic == FS_UFS1_MAGIC)
return (EOPNOTSUPP);
+#ifdef __FreeBSD__
if (ap->a_vp->v_type == VCHR || ap->a_vp->v_type == VBLK)
return (EOPNOTSUPP);
+#endif
return (ffs_open_ea(ap->a_vp, ap->a_cred));
}
@@ -612,8 +614,10 @@ ffs_closeextattr(void *v)
if (fs->fs_magic == FS_UFS1_MAGIC)
return (EOPNOTSUPP);
+#ifdef __FreeBSD__
if (ap->a_vp->v_type == VCHR || ap->a_vp->v_type == VBLK)
return (EOPNOTSUPP);
+#endif
if (ap->a_commit && (ap->a_vp->v_mount->mnt_flag & MNT_RDONLY))
return (EROFS);
@@ -649,8 +653,10 @@ ffs_getextattr(void *v)
unsigned easize;
int error, ealen;
+#ifdef __FreeBSD__
if (ap->a_vp->v_type == VCHR || ap->a_vp->v_type == VBLK)
return (EOPNOTSUPP);
+#endif
error = extattr_check_cred(ap->a_vp, ap->a_attrnamespace,
ap->a_cred, VREAD);
@@ -892,8 +898,10 @@ ffs_deleteextattr(void *v)
u_char *eae;
void *tmp;
+#ifdef __FreeBSD__
if (ap->a_vp->v_type == VCHR || ap->a_vp->v_type == VBLK)
return (EOPNOTSUPP);
+#endif
if (strlen(ap->a_name) == 0)
return (EINVAL);