PERFORCE change 162722 for review
Edward Tomasz Napierala
trasz at FreeBSD.org
Mon May 25 15:02:53 UTC 2009
http://perforce.freebsd.org/chv.cgi?CH=162722
Change 162722 by trasz at trasz_victim on 2009/05/25 15:02:38
Simplify the ZFS ACL support.
Submitted by: pjd
Affected files ...
.. //depot/projects/soc2008/trasz_nfs4acl/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c#23 edit
Differences ...
==== //depot/projects/soc2008/trasz_nfs4acl/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c#23 (text+ko) ====
@@ -4801,36 +4801,18 @@
{
int error;
vsecattr_t vsecattr;
- int aclbsize; /* size of acl list in bytes */
if (ap->a_type != ACL_TYPE_NFS4)
return (EOPNOTSUPP);
- /* Mostly taken from common/syscall/acl.c. */
-
vsecattr.vsa_mask = VSA_ACE | VSA_ACECNT;
if (error = zfs_getsecattr(ap->a_vp, &vsecattr, 0, ap->a_cred, NULL))
return (error);
- aclbsize = vsecattr.vsa_aclcnt * sizeof (ace_t);
- if (vsecattr.vsa_aclcnt > ACL_MAX_ENTRIES) {
- printf("GETACL: no space\n");
- error = ENOSPC;
- goto errout;
- }
-
error = acl_from_aces(ap->a_aclp, vsecattr.vsa_aclentp, vsecattr.vsa_aclcnt);
- if (error != 0)
- goto errout;
-
- if (vsecattr.vsa_aclcnt != 0)
- kmem_free(vsecattr.vsa_aclentp, vsecattr.vsa_aclentsz);
-
- return (0);
+ if (vsecattr.vsa_aclentp != NULL)
+ kmem_free(vsecattr.vsa_aclentp, vsecattr.vsa_aclentsz);
-errout:
- if (aclbsize != 0 && vsecattr.vsa_aclentp != NULL)
- kmem_free(vsecattr.vsa_aclentp, aclbsize);
return (error);
}
@@ -4861,7 +4843,7 @@
* entries at the end. Don't allow for setting an ACL that would
* cause chmod(2) to run out of ACL entries.
*/
- if (inkernelacl->acl_cnt * 2 + 6 > ACL_MAX_ENTRIES)
+ if (ap->a_aclp->acl_cnt * 2 + 6 > ACL_MAX_ENTRIES)
return (ENOSPC);
vsecattr.vsa_mask = VSA_ACE;
@@ -4871,13 +4853,10 @@
vsecattr.vsa_aclentsz = aclbsize;
aces_from_acl(vsecattr.vsa_aclentp, &vsecattr.vsa_aclcnt, ap->a_aclp);
- if (error = zfs_setsecattr(ap->a_vp, &vsecattr, 0, ap->a_cred, NULL)) {
- kmem_free(aaclp, aclbsize);
- return (error);
- }
+ error = zfs_setsecattr(ap->a_vp, &vsecattr, 0, ap->a_cred, NULL);
+ kmem_free(aaclp, aclbsize);
- kmem_free(aaclp, aclbsize);
- return (0);
+ return (error);
}
int
@@ -4890,10 +4869,6 @@
struct thread *td;
} */ *ap;
{
- if (ap->a_type != ACL_TYPE_NFS4)
- return (EOPNOTSUPP);
-
- printf("ACLCHECK\n");
return (EOPNOTSUPP);
}
More information about the p4-projects
mailing list