PERFORCE change 168846 for review

Edward Tomasz Napierala trasz at FreeBSD.org
Thu Sep 24 13:51:05 UTC 2009


http://perforce.freebsd.org/chv.cgi?CH=168846

Change 168846 by trasz at trasz_victim on 2009/09/24 13:50:35

	Fix errno - no ACL support at all is EOPNOTSUPP, no support for this
	particular type of ACL is EINVAL.

Affected files ...

.. //depot/projects/soc2008/trasz_nfs4acl/sys/ufs/ufs/ufs_acl.c#21 edit

Differences ...

==== //depot/projects/soc2008/trasz_nfs4acl/sys/ufs/ufs/ufs_acl.c#21 (text+ko) ====

@@ -147,7 +147,7 @@
 	struct inode *ip = VTOI(ap->a_vp);
 
 	if ((ap->a_vp->v_mount->mnt_flag & MNT_NFS4ACLS) == 0)
-		return (EOPNOTSUPP);
+		return (EINVAL);
 
 	len = sizeof(*ap->a_aclp);
 	bzero(ap->a_aclp, len);
@@ -265,7 +265,7 @@
 	 * ACLs, remove this check.
 	 */
 	if ((ap->a_vp->v_mount->mnt_flag & MNT_ACLS) == 0)
-		return (EOPNOTSUPP);
+		return (EINVAL);
 
 	old = malloc(sizeof(*old), M_ACL, M_WAITOK | M_ZERO);
 
@@ -338,6 +338,9 @@
 	} */ *ap;
 {
 
+	if ((ap->a_vp->v_mount->mnt_flag & (MNT_ACLS | MNT_NFS4ACLS)) == 0)
+		return (EOPNOTSUPP);
+
 	if (ap->a_type == ACL_TYPE_NFS4)
 		return (ufs_getacl_nfs4(ap));
 
@@ -352,7 +355,7 @@
 	struct inode *ip = VTOI(ap->a_vp);
 
 	if ((ap->a_vp->v_mount->mnt_flag & MNT_NFS4ACLS) == 0)
-		return (EOPNOTSUPP);
+		return (EINVAL);
 
 	if (ap->a_vp->v_mount->mnt_flag & MNT_RDONLY)
 		return (EROFS);
@@ -438,7 +441,7 @@
 	struct oldacl *old;
 
 	if ((ap->a_vp->v_mount->mnt_flag & MNT_ACLS) == 0)
-		return (EOPNOTSUPP);
+		return (EINVAL);
 
 	/*
 	 * If this is a set operation rather than a delete operation,
@@ -558,6 +561,8 @@
 		struct thread *td;
 	} */ *ap;
 {
+	if ((ap->a_vp->v_mount->mnt_flag & (MNT_ACLS | MNT_NFS4ACLS)) == 0)
+		return (EOPNOTSUPP);
 
 	if (ap->a_type == ACL_TYPE_NFS4)
 		return (ufs_setacl_nfs4(ap));
@@ -571,7 +576,7 @@
 	int is_directory = 0;
 
 	if ((ap->a_vp->v_mount->mnt_flag & MNT_NFS4ACLS) == 0)
-		return (EOPNOTSUPP);
+		return (EINVAL);
 
 	if (ap->a_vp->v_type == VDIR)
 		is_directory = 1;
@@ -584,7 +589,7 @@
 {
 
 	if ((ap->a_vp->v_mount->mnt_flag & MNT_ACLS) == 0)
-		return (EOPNOTSUPP);
+		return (EINVAL);
 
 	/*
 	 * Verify we understand this type of ACL, and that it applies
@@ -624,6 +629,9 @@
 	} */ *ap;
 {
 
+	if ((ap->a_vp->v_mount->mnt_flag & (MNT_ACLS | MNT_NFS4ACLS)) == 0)
+		return (EOPNOTSUPP);
+
 	if (ap->a_type == ACL_TYPE_NFS4)
 		return (ufs_aclcheck_nfs4(ap));
 


More information about the p4-projects mailing list