Lines Matching refs:vsecattr

133 	vsecattr_t	vsecattr;  in cacl()  local
138 bzero(&vsecattr, sizeof (vsecattr_t)); in cacl()
146 vsecattr.vsa_mask = VSA_ACLCNT | VSA_DFACLCNT; in cacl()
149 vsecattr.vsa_mask = VSA_ACECNT; in cacl()
151 if (error = VOP_GETSECATTR(vp, &vsecattr, 0, CRED(), NULL)) in cacl()
153 *rv = vsecattr.vsa_aclcnt + vsecattr.vsa_dfaclcnt; in cacl()
154 if (vsecattr.vsa_aclcnt && vsecattr.vsa_aclentp) { in cacl()
155 kmem_free(vsecattr.vsa_aclentp, in cacl()
156 vsecattr.vsa_aclcnt * entry_size); in cacl()
158 if (vsecattr.vsa_dfaclcnt && vsecattr.vsa_dfaclentp) { in cacl()
159 kmem_free(vsecattr.vsa_dfaclentp, in cacl()
160 vsecattr.vsa_dfaclcnt * entry_size); in cacl()
175 vsecattr.vsa_mask = VSA_ACL | VSA_ACLCNT | VSA_DFACL | in cacl()
177 if (error = VOP_GETSECATTR(vp, &vsecattr, 0, CRED(), NULL)) in cacl()
180 numacls = vsecattr.vsa_aclcnt + vsecattr.vsa_dfaclcnt; in cacl()
181 aclbsize = vsecattr.vsa_aclcnt * sizeof (aclent_t); in cacl()
182 dfaclbsize = vsecattr.vsa_dfaclcnt * sizeof (aclent_t); in cacl()
188 if (vsecattr.vsa_aclcnt > 1) in cacl()
189 ksort((caddr_t)vsecattr.vsa_aclentp, in cacl()
190 vsecattr.vsa_aclcnt, sizeof (aclent_t), cmp2acls); in cacl()
191 if (vsecattr.vsa_dfaclcnt > 1) in cacl()
192 ksort((caddr_t)vsecattr.vsa_dfaclentp, in cacl()
193 vsecattr.vsa_dfaclcnt, sizeof (aclent_t), cmp2acls); in cacl()
197 if (copyout(vsecattr.vsa_aclentp, uaddrp, aclbsize)) { in cacl()
205 if (copyout(vsecattr.vsa_dfaclentp, in cacl()
212 if (vsecattr.vsa_aclcnt) { in cacl()
213 kmem_free(vsecattr.vsa_aclentp, in cacl()
214 vsecattr.vsa_aclcnt * sizeof (aclent_t)); in cacl()
216 if (vsecattr.vsa_dfaclcnt) { in cacl()
217 kmem_free(vsecattr.vsa_dfaclentp, in cacl()
218 vsecattr.vsa_dfaclcnt * sizeof (aclent_t)); in cacl()
226 vsecattr.vsa_mask = VSA_ACE | VSA_ACECNT; in cacl()
227 if (error = VOP_GETSECATTR(vp, &vsecattr, 0, CRED(), NULL)) in cacl()
230 aclbsize = vsecattr.vsa_aclcnt * sizeof (ace_t); in cacl()
231 if (vsecattr.vsa_aclcnt > nentries) { in cacl()
237 if ((error = copyout(vsecattr.vsa_aclentp, in cacl()
243 *rv = vsecattr.vsa_aclcnt; in cacl()
244 if (vsecattr.vsa_aclcnt) { in cacl()
245 kmem_free(vsecattr.vsa_aclentp, vsecattr.vsa_aclentsz); in cacl()
264 vsecattr.vsa_mask = VSA_ACL; in cacl()
266 vsecattr.vsa_aclentp = kmem_alloc(aclbsize, KM_SLEEP); in cacl()
267 aaclp = vsecattr.vsa_aclentp; in cacl()
268 vsecattr.vsa_aclcnt = nentries; in cacl()
270 if (copyin(uaddrp, vsecattr.vsa_aclentp, aclbsize)) { in cacl()
275 ksort((caddr_t)vsecattr.vsa_aclentp, in cacl()
276 vsecattr.vsa_aclcnt, sizeof (aclent_t), cmp2acls); in cacl()
279 for (numacls = 0, aclp = vsecattr.vsa_aclentp; in cacl()
280 numacls < vsecattr.vsa_aclcnt; in cacl()
287 if (numacls < vsecattr.vsa_aclcnt) { in cacl()
288 vsecattr.vsa_mask |= VSA_DFACL; in cacl()
289 vsecattr.vsa_dfaclcnt = nentries - numacls; in cacl()
290 vsecattr.vsa_dfaclentp = aclp; in cacl()
291 vsecattr.vsa_aclcnt = numacls; in cacl()
294 if (vsecattr.vsa_aclcnt == 0) { in cacl()
295 vsecattr.vsa_mask &= ~VSA_ACL; in cacl()
296 vsecattr.vsa_aclentp = NULL; in cacl()
299 if (vsecattr.vsa_dfaclcnt && vp->v_type != VDIR) { in cacl()
304 if (error = VOP_SETSECATTR(vp, &vsecattr, 0, CRED(), NULL)) { in cacl()
326 vsecattr.vsa_mask = VSA_ACE; in cacl()
328 vsecattr.vsa_aclentp = kmem_alloc(aclbsize, KM_SLEEP); in cacl()
329 aaclp = vsecattr.vsa_aclentp; in cacl()
330 vsecattr.vsa_aclcnt = nentries; in cacl()
331 vsecattr.vsa_aclentsz = aclbsize; in cacl()
333 if (copyin(uaddrp, vsecattr.vsa_aclentp, aclbsize)) { in cacl()
338 if (error = VOP_SETSECATTR(vp, &vsecattr, 0, CRED(), NULL)) { in cacl()
355 if (aclbsize && vsecattr.vsa_aclentp) in cacl()
356 kmem_free(vsecattr.vsa_aclentp, aclbsize); in cacl()
357 if (dfaclbsize && vsecattr.vsa_dfaclentp) in cacl()
358 kmem_free(vsecattr.vsa_dfaclentp, dfaclbsize); in cacl()