Lines Matching refs:vsecattr

131 	vsecattr_t	vsecattr;  in cacl()  local
136 bzero(&vsecattr, sizeof (vsecattr_t)); in cacl()
145 vsecattr.vsa_mask = VSA_ACLCNT | VSA_DFACLCNT; in cacl()
148 vsecattr.vsa_mask = VSA_ACECNT; in cacl()
150 if (error = VOP_GETSECATTR(vp, &vsecattr, 0, CRED(), NULL)) in cacl()
152 *rv = vsecattr.vsa_aclcnt + vsecattr.vsa_dfaclcnt; in cacl()
153 if (vsecattr.vsa_aclcnt && vsecattr.vsa_aclentp) { in cacl()
154 kmem_free(vsecattr.vsa_aclentp, in cacl()
155 vsecattr.vsa_aclcnt * entry_size); in cacl()
157 if (vsecattr.vsa_dfaclcnt && vsecattr.vsa_dfaclentp) { in cacl()
158 kmem_free(vsecattr.vsa_dfaclentp, in cacl()
159 vsecattr.vsa_dfaclcnt * entry_size); in cacl()
174 vsecattr.vsa_mask = VSA_ACL | VSA_ACLCNT | VSA_DFACL | in cacl()
176 if (error = VOP_GETSECATTR(vp, &vsecattr, 0, CRED(), NULL)) in cacl()
179 numacls = vsecattr.vsa_aclcnt + vsecattr.vsa_dfaclcnt; in cacl()
180 aclbsize = vsecattr.vsa_aclcnt * sizeof (aclent_t); in cacl()
181 dfaclbsize = vsecattr.vsa_dfaclcnt * sizeof (aclent_t); in cacl()
187 if (vsecattr.vsa_aclcnt > 1) in cacl()
188 ksort((caddr_t)vsecattr.vsa_aclentp, in cacl()
189 vsecattr.vsa_aclcnt, sizeof (aclent_t), cmp2acls); in cacl()
190 if (vsecattr.vsa_dfaclcnt > 1) in cacl()
191 ksort((caddr_t)vsecattr.vsa_dfaclentp, in cacl()
192 vsecattr.vsa_dfaclcnt, sizeof (aclent_t), cmp2acls); in cacl()
196 if (copyout(vsecattr.vsa_aclentp, uaddrp, aclbsize)) { in cacl()
204 if (copyout(vsecattr.vsa_dfaclentp, in cacl()
211 if (vsecattr.vsa_aclcnt) { in cacl()
212 kmem_free(vsecattr.vsa_aclentp, in cacl()
213 vsecattr.vsa_aclcnt * sizeof (aclent_t)); in cacl()
215 if (vsecattr.vsa_dfaclcnt) { in cacl()
216 kmem_free(vsecattr.vsa_dfaclentp, in cacl()
217 vsecattr.vsa_dfaclcnt * sizeof (aclent_t)); in cacl()
225 vsecattr.vsa_mask = VSA_ACE | VSA_ACECNT; in cacl()
226 if (error = VOP_GETSECATTR(vp, &vsecattr, 0, CRED(), NULL)) in cacl()
229 aclbsize = vsecattr.vsa_aclcnt * sizeof (ace_t); in cacl()
230 if (vsecattr.vsa_aclcnt > nentries) { in cacl()
236 if ((error = copyout(vsecattr.vsa_aclentp, in cacl()
242 *rv = vsecattr.vsa_aclcnt; in cacl()
243 if (vsecattr.vsa_aclcnt) { in cacl()
244 kmem_free(vsecattr.vsa_aclentp, vsecattr.vsa_aclentsz); in cacl()
263 vsecattr.vsa_mask = VSA_ACL; in cacl()
265 vsecattr.vsa_aclentp = kmem_alloc(aclbsize, KM_SLEEP); in cacl()
266 aaclp = vsecattr.vsa_aclentp; in cacl()
267 vsecattr.vsa_aclcnt = nentries; in cacl()
269 if (copyin(uaddrp, vsecattr.vsa_aclentp, aclbsize)) { in cacl()
274 ksort((caddr_t)vsecattr.vsa_aclentp, in cacl()
275 vsecattr.vsa_aclcnt, sizeof (aclent_t), cmp2acls); in cacl()
278 for (numacls = 0, aclp = vsecattr.vsa_aclentp; in cacl()
279 numacls < vsecattr.vsa_aclcnt; in cacl()
286 if (numacls < vsecattr.vsa_aclcnt) { in cacl()
287 vsecattr.vsa_mask |= VSA_DFACL; in cacl()
288 vsecattr.vsa_dfaclcnt = nentries - numacls; in cacl()
289 vsecattr.vsa_dfaclentp = aclp; in cacl()
290 vsecattr.vsa_aclcnt = numacls; in cacl()
293 if (vsecattr.vsa_aclcnt == 0) { in cacl()
294 vsecattr.vsa_mask &= ~VSA_ACL; in cacl()
295 vsecattr.vsa_aclentp = NULL; in cacl()
298 if (vsecattr.vsa_dfaclcnt && vp->v_type != VDIR) { in cacl()
303 if (error = VOP_SETSECATTR(vp, &vsecattr, 0, CRED(), NULL)) { in cacl()
325 vsecattr.vsa_mask = VSA_ACE; in cacl()
327 vsecattr.vsa_aclentp = kmem_alloc(aclbsize, KM_SLEEP); in cacl()
328 aaclp = vsecattr.vsa_aclentp; in cacl()
329 vsecattr.vsa_aclcnt = nentries; in cacl()
330 vsecattr.vsa_aclentsz = aclbsize; in cacl()
332 if (copyin(uaddrp, vsecattr.vsa_aclentp, aclbsize)) { in cacl()
337 if (error = VOP_SETSECATTR(vp, &vsecattr, 0, CRED(), NULL)) { in cacl()
354 if (aclbsize && vsecattr.vsa_aclentp) in cacl()
355 kmem_free(vsecattr.vsa_aclentp, aclbsize); in cacl()
356 if (dfaclbsize && vsecattr.vsa_dfaclentp) in cacl()
357 kmem_free(vsecattr.vsa_dfaclentp, dfaclbsize); in cacl()