Lines Matching defs:lrp

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