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