Lines Matching refs:rdc
2976 rddir_cache *rdc; in nfs_readdir() local
3055 rdc = avl_find(&rp->r_dir, &srdc, &where); in nfs_readdir()
3056 if (rdc != NULL) { in nfs_readdir()
3057 rddir_cache_hold(rdc); in nfs_readdir()
3067 if (rdc->flags & RDDIR) { in nfs_readdir()
3069 rdc->flags |= RDDIRWAIT; in nfs_readdir()
3073 if (!cv_wait_sig(&rdc->cv, &rp->r_statelock)) { in nfs_readdir()
3083 rddir_cache_rele(rdc); in nfs_readdir()
3091 rddir_cache_rele(rdc); in nfs_readdir()
3100 if (rdc->flags & RDDIRREQ) { in nfs_readdir()
3101 rdc->flags &= ~RDDIRREQ; in nfs_readdir()
3102 rdc->flags |= RDDIR; in nfs_readdir()
3105 nrdc = rdc; in nfs_readdir()
3117 if (rdc->error) { in nfs_readdir()
3118 error = rdc->error; in nfs_readdir()
3120 rddir_cache_rele(rdc); in nfs_readdir()
3131 error = uiomove(rdc->entries, rdc->entlen, UIO_READ, uiop); in nfs_readdir()
3140 uiop->uio_offset = rdc->nfs_ncookie; in nfs_readdir()
3142 *eofp = rdc->eof; in nfs_readdir()
3149 if (rdc->eof) { in nfs_readdir()
3150 rp->r_direof = rdc; in nfs_readdir()
3152 rddir_cache_rele(rdc); in nfs_readdir()
3167 srdc.nfs_cookie = rdc->nfs_ncookie; in nfs_readdir()
3180 rrdc->nfs_cookie = rdc->nfs_ncookie; in nfs_readdir()
3185 rddir_cache_rele(rdc); in nfs_readdir()
3195 rddir_cache_rele(rdc); in nfs_readdir()
3254 nfsreaddir(vnode_t *vp, rddir_cache *rdc, cred_t *cr) in nfsreaddir() argument
3266 count = rdc->buflen; in nfsreaddir()
3272 rda.rda_offset = rdc->nfs_cookie; in nfsreaddir()
3278 if (rdc->nfs_cookie == (off_t)0) { in nfsreaddir()
3289 rd.rd_entries = kmem_alloc(rdc->buflen, KM_SLEEP); in nfsreaddir()
3325 ASSERT(rdc->flags & RDDIR); in nfsreaddir()
3329 rdc->nfs_ncookie = rd.rd_offset; in nfsreaddir()
3330 rdc->eof = rd.rd_eof ? 1 : 0; in nfsreaddir()
3331 rdc->entlen = rd.rd_size; in nfsreaddir()
3332 ASSERT(rdc->entlen <= rdc->buflen); in nfsreaddir()
3334 rdc->entries = rddir_cache_buf_alloc(rdc->buflen, in nfsreaddir()
3337 rdc->entries = kmem_alloc(rdc->buflen, KM_SLEEP); in nfsreaddir()
3339 bcopy(rd.rd_entries, rdc->entries, rdc->entlen); in nfsreaddir()
3340 rdc->error = 0; in nfsreaddir()
3353 rdc->entries = NULL; in nfsreaddir()
3354 rdc->error = error; in nfsreaddir()
3356 kmem_free(rd.rd_entries, rdc->buflen); in nfsreaddir()
3359 rdc->flags &= ~RDDIR; in nfsreaddir()
3360 if (rdc->flags & RDDIRWAIT) { in nfsreaddir()
3361 rdc->flags &= ~RDDIRWAIT; in nfsreaddir()
3362 cv_broadcast(&rdc->cv); in nfsreaddir()
3365 rdc->flags |= RDDIRREQ; in nfsreaddir()
3368 rddir_cache_rele(rdc); in nfsreaddir()