Lines Matching refs:lrp

274 	struct nfslog_lr *lrp, *lrp_next;  in nfslog_free_buf()  local
302 lrp = lbp->lrps; in nfslog_free_buf()
304 lrp_next = lrp->next; in nfslog_free_buf()
305 nfslog_free_logrecord(lrp, FALSE); in nfslog_free_buf()
306 lrp = lrp_next; in nfslog_free_buf()
307 } while (lrp != lbp->lrps); in nfslog_free_buf()
367 struct nfslog_lr *lrp; in nfslog_read_buffer() local
372 lrp = (struct nfslog_lr *)malloc(sizeof (*lrp)); in nfslog_read_buffer()
373 bzero(lrp, sizeof (*lrp)); in nfslog_read_buffer()
381 free_lrp(lrp); in nfslog_read_buffer()
388 free_lrp(lrp); in nfslog_read_buffer()
398 free_lrp(lrp); in nfslog_read_buffer()
402 lrp->recsize = record_size; in nfslog_read_buffer()
403 next_rec = lbp->next_rec + lrp->recsize; in nfslog_read_buffer()
416 free_lrp(lrp); in nfslog_read_buffer()
420 if ((lrp->buffer = malloc(lrp->recsize)) == NULL) { in nfslog_read_buffer()
421 free_lrp(lrp); in nfslog_read_buffer()
424 bcopy(sizebuf, lrp->buffer, BYTES_PER_XDR_UNIT); in nfslog_read_buffer()
425 if (read(lbp->fd, &lrp->buffer[BYTES_PER_XDR_UNIT], in nfslog_read_buffer()
426 lrp->recsize - BYTES_PER_XDR_UNIT) <= 0) { in nfslog_read_buffer()
427 free_lrp(lrp); in nfslog_read_buffer()
435 free_lrp(lrp); in nfslog_read_buffer()
441 lrp->next = lrp->prev = lrp; in nfslog_read_buffer()
444 lrp->f_offset = lbp->next_rec; in nfslog_read_buffer()
446 lrp->f_offset = lbp->next_rec - lbp->mmap_addr; in nfslog_read_buffer()
448 lrp->record = lbp->next_rec; in nfslog_read_buffer()
449 lrp->xdrargs = lrp->xdrres = NULL; in nfslog_read_buffer()
450 lrp->lbp = lbp; in nfslog_read_buffer()
453 buffer = (lrp->buffer != NULL ? lrp->buffer : (caddr_t)lrp->record); in nfslog_read_buffer()
456 xdrmem_create(&lrp->xdrs, buffer, lrp->recsize, XDR_DECODE); in nfslog_read_buffer()
461 return (lrp); in nfslog_read_buffer()
469 remove_lrp_from_lb(struct nfslog_buf *lbp, struct nfslog_lr *lrp) in remove_lrp_from_lb() argument
471 if (lbp->lrps == lrp) { in remove_lrp_from_lb()
475 lbp->lrps = lrp->next; in remove_lrp_from_lb()
476 remque(lrp); in remove_lrp_from_lb()
479 remque(lrp); in remove_lrp_from_lb()
482 return (lrp); in remove_lrp_from_lb()
494 insert_lrp_to_lb(struct nfslog_buf *lbp, struct nfslog_lr *lrp) in insert_lrp_to_lb() argument
496 int ins_rec_id = lrp->log_record.re_header.rh_rec_id; in insert_lrp_to_lb()
501 lbp->lrps = lrp; in insert_lrp_to_lb()
510 lrp->next = lbp->lrps; in insert_lrp_to_lb()
511 lrp->prev = lbp->lrps->prev; in insert_lrp_to_lb()
512 lbp->lrps->prev->next = lrp; in insert_lrp_to_lb()
513 lbp->lrps->prev = lrp; in insert_lrp_to_lb()
514 lbp->lrps = lrp; in insert_lrp_to_lb()
529 insque(lrp, lbp->lrps->prev); in insert_lrp_to_lb()
531 insque(lrp, curlrp); in insert_lrp_to_lb()
634 nfslog_ins_last_rec_processed(struct nfslog_lr *lrp) in nfslog_ins_last_rec_processed() argument
641 prp->start_offset = lrp->f_offset; in nfslog_ins_last_rec_processed()
642 prp->len = lrp->recsize; in nfslog_ins_last_rec_processed()
646 lrp->lbp->num_pr_queued++; in nfslog_ins_last_rec_processed()
649 if (lrp->lbp->prp == NULL) { in nfslog_ins_last_rec_processed()
650 lrp->lbp->prp = prp; in nfslog_ins_last_rec_processed()
653 tp = lrp->lbp->prp; in nfslog_ins_last_rec_processed()
658 } while (tp != lrp->lbp->prp); in nfslog_ins_last_rec_processed()
665 if (tp == lrp->lbp->prp && prp->start_offset < tp->start_offset) in nfslog_ins_last_rec_processed()
666 lrp->lbp->prp = prp; in nfslog_ins_last_rec_processed()
692 if (lrp->lbp->num_pr_queued > MAX_RECS_TO_DELAY) { in nfslog_ins_last_rec_processed()
693 prp = lrp->lbp->prp; in nfslog_ins_last_rec_processed()
694 if (lrp->lbp->last_record_offset == in nfslog_ins_last_rec_processed()
698 lrp->lbp->last_record_offset = in nfslog_ins_last_rec_processed()
701 nfslog_rewrite_bufheader(lrp->lbp); in nfslog_ins_last_rec_processed()
708 lrp->lbp->prp = tp; in nfslog_ins_last_rec_processed()
709 lrp->lbp->num_pr_queued -= prp->num_recs; in nfslog_ins_last_rec_processed()
746 struct nfslog_lr *lrp = NULL; in nfslog_get_logrecord() local
757 lrp = remove_lrp_from_lb(lbp, lbp->lrps); in nfslog_get_logrecord()
758 lbp->last_rec_id = lrp->log_record.re_header.rh_rec_id; in nfslog_get_logrecord()
772 lrp = remove_lrp_from_lb(lbp, lbp->lrps); in nfslog_get_logrecord()
774 lrp->log_record.re_header.rh_rec_id; in nfslog_get_logrecord()
787 while (lrp == NULL) { in nfslog_get_logrecord()
790 lrp = remove_lrp_from_lb(lbp, lbp->lrps); in nfslog_get_logrecord()
791 lbp->last_rec_id = lrp->log_record.re_header.rh_rec_id; in nfslog_get_logrecord()
801 if ((lrp = nfslog_read_buffer(lbp)) == NULL) { in nfslog_get_logrecord()
803 lrp = remove_lrp_from_lb(lbp, lbp->lrps); in nfslog_get_logrecord()
805 lrp->log_record.re_header.rh_rec_id; in nfslog_get_logrecord()
815 if (!xdr_nfslog_request_record(&lrp->xdrs, in nfslog_get_logrecord()
816 &lrp->log_record)) { in nfslog_get_logrecord()
818 nfslog_free_logrecord(lrp, FALSE); in nfslog_get_logrecord()
825 if (lrp->log_record.re_header.rh_rec_id <= in nfslog_get_logrecord()
829 lrp->log_record.re_header.rh_rec_id; in nfslog_get_logrecord()
836 insert_lrp_to_lb(lbp, lrp); in nfslog_get_logrecord()
837 lrp = NULL; in nfslog_get_logrecord()
841 return (lrp); in nfslog_get_logrecord()
857 nfslog_free_logrecord(struct nfslog_lr *lrp, bool_t processing_complete) in nfslog_free_logrecord() argument
863 nfslog_ins_last_rec_processed(lrp); in nfslog_free_logrecord()
866 reqrec = &lrp->log_record; in nfslog_free_logrecord()
868 buffer = (lrp->buffer != NULL ? lrp->buffer : (caddr_t)lrp->record); in nfslog_free_logrecord()
870 xdrmem_create(&lrp->xdrs, buffer, lrp->recsize, XDR_FREE); in nfslog_free_logrecord()
872 (void) xdr_nfslog_request_record(&lrp->xdrs, reqrec); in nfslog_free_logrecord()
874 if (lrp->xdrargs != NULL && reqrec->re_rpc_arg) in nfslog_free_logrecord()
875 (*lrp->xdrargs)(&lrp->xdrs, reqrec->re_rpc_arg); in nfslog_free_logrecord()
880 if (lrp->xdrres != NULL && reqrec->re_rpc_res) in nfslog_free_logrecord()
881 (*lrp->xdrres)(&lrp->xdrs, reqrec->re_rpc_res); in nfslog_free_logrecord()
886 free_lrp(lrp); in nfslog_free_logrecord()
890 free_lrp(struct nfslog_lr *lrp) in free_lrp() argument
892 if (lrp->buffer != NULL) in free_lrp()
893 free(lrp->buffer); in free_lrp()
894 free(lrp); in free_lrp()