Lines Matching refs:drp

99 	rfs4_dupreq_t *drp, *drp_next;
104 for (drp = list_head(&(drc->dr_cache)); drp != NULL; drp = drp_next) {
106 if (drp->dr_state == NFS4_DUP_REPLAY)
107 rfs4_compound_free(&(drp->dr_res));
109 if (drp->dr_addr.buf != NULL)
110 kmem_free(drp->dr_addr.buf, drp->dr_addr.maxlen);
112 drp_next = list_next(&(drc->dr_cache), drp);
114 kmem_free(drp, sizeof (rfs4_dupreq_t));
132 rfs4_dr_chstate(rfs4_dupreq_t *drp, int new_state)
136 ASSERT(drp);
137 ASSERT(drp->drc);
138 ASSERT(drp->dr_bkt);
139 ASSERT(MUTEX_HELD(&drp->drc->lock));
141 drp->dr_state = new_state;
146 drc = drp->drc;
152 list_remove(drp->dr_bkt, drp);
153 list_remove(&(drc->dr_cache), drp);
154 rfs4_compound_free(&(drp->dr_res));
168 rfs4_dupreq_t *drp_tail, *drp = NULL;
180 drp = kmem_zalloc(sizeof (rfs4_dupreq_t), KM_SLEEP);
181 drp->drc = drc;
183 DTRACE_PROBE1(nfss__i__drc_new, rfs4_dupreq_t *, drp);
184 return (drp);
231 rfs4_dupreq_t *drp;
255 for (drp = list_head(dr_bkt); drp != NULL;
256 drp = list_next(dr_bkt, drp)) {
258 if (drp->dr_xid == the_xid &&
259 drp->dr_addr.len == req->rq_xprt->xp_rtaddr.len &&
260 bcmp((caddr_t)drp->dr_addr.buf,
262 drp->dr_addr.len) == 0) {
267 if (drp->dr_state == NFS4_DUP_REPLAY) {
268 rfs4_dr_chstate(drp, NFS4_DUP_INUSE);
270 *dup = drp;
272 rfs4_dupreq_t *, drp);
285 drp = rfs4_alloc_dr(drc);
295 if (drp == NULL)
301 drp->dr_state = NFS4_DUP_NEW;
306 if (drp->dr_addr.maxlen < req->rq_xprt->xp_rtaddr.len) {
307 if (drp->dr_addr.buf != NULL)
308 kmem_free(drp->dr_addr.buf, drp->dr_addr.maxlen);
309 drp->dr_addr.maxlen = req->rq_xprt->xp_rtaddr.len;
310 drp->dr_addr.buf = kmem_alloc(drp->dr_addr.maxlen, KM_NOSLEEP);
311 if (drp->dr_addr.buf == NULL) {
316 drp->dr_addr.maxlen = 0;
317 drp->dr_state = NFS4_DUP_FREE;
319 list_insert_tail(&(drc->dr_cache), drp);
329 drp->dr_addr.len = req->rq_xprt->xp_rtaddr.len;
332 (caddr_t)drp->dr_addr.buf,
333 drp->dr_addr.len);
335 drp->dr_xid = the_xid;
336 drp->dr_bkt = dr_bkt;
343 list_insert_head(&drc->dr_cache, drp);
344 list_insert_head(dr_bkt, drp);
347 *dup = drp;
372 * drp is the duplicate request entry
387 rfs4_dupreq_t *drp = NULL;
426 dr_stat = rfs4_find_dr(req, nfs4_drc, &drp);
457 drp->dr_res = res_buf;
464 mutex_enter(&drp->drc->lock);
465 rfs4_dr_chstate(drp, NFS4_DUP_FREE);
466 list_insert_tail(&(drp->drc->dr_cache), drp);
467 mutex_exit(&drp->drc->lock);
474 rbp = &(drp->dr_res);
520 mutex_enter(&drp->drc->lock);
521 rfs4_dr_chstate(drp, NFS4_DUP_REPLAY);
522 mutex_exit(&drp->drc->lock);