Lines Matching defs:zr
103 zut_readdir_t *zr;
112 zr = kmem_zalloc(sizeof (zut_readdir_t), KM_SLEEP);
113 error = ddi_copyin((void *)arg, zr, sizeof (zut_readdir_t), iflag);
117 kbuf = kmem_zalloc(zr->zr_buflen, KM_SLEEP);
119 zr->zr_retcode = zut_open_dir(zr->zr_dir, NULL, cr, flags, NULL, &dvn);
120 if (zr->zr_retcode)
123 if (zr->zr_reqflags & ZUT_XATTR) {
126 zr->zr_retcode = VOP_LOOKUP(dvn, zr->zr_file, &fvn,
130 if (zr->zr_retcode)
139 zr->zr_retcode = VOP_ACCESS(fvn, ACE_READ_NAMED_ATTRS,
142 zr->zr_retcode = VOP_ACCESS(fvn, VREAD, 0, cr, NULL);
144 if (zr->zr_retcode)
148 zr->zr_retcode = VOP_GETATTR(fvn, &vattr, 0, cr, NULL);
149 if (zr->zr_retcode)
152 zr->zr_retcode = VOP_LOOKUP(fvn, "", &dvn, NULL,
155 if (zr->zr_retcode)
160 aiov.iov_len = zr->zr_buflen;
163 auio.uio_loffset = zr->zr_loffset;
165 auio.uio_resid = zr->zr_buflen;
169 if (zr->zr_reqflags & ZUT_EXTRDDIR)
171 if (zr->zr_reqflags & ZUT_ACCFILTER)
175 zr->zr_retcode = VOP_READDIR(dvn, &auio, cr, &zr->zr_eof,
180 zr->zr_bytes = aiov.iov_base - kbuf;
181 zr->zr_loffset = auio.uio_loffset;
183 error = ddi_copyout(kbuf, (void *)(uintptr_t)zr->zr_buf,
184 zr->zr_buflen, iflag);
187 kmem_free(kbuf, zr->zr_buflen);
188 rc = ddi_copyout(zr, (void *)arg, sizeof (zut_readdir_t), iflag);
193 kmem_free(zr, sizeof (zut_readdir_t));