Lines Matching refs:so_src
479 splice_lock_pair(struct socket *so_src, struct socket *so_dst) in splice_lock_pair() argument
487 error = SOCK_IO_RECV_LOCK(so_src, 0); in splice_lock_pair()
494 error = SOCK_IO_RECV_LOCK(so_src, SBL_WAIT | SBL_NOINTR); in splice_lock_pair()
502 SOCK_IO_RECV_UNLOCK(so_src); in splice_lock_pair()
507 splice_unlock_pair(struct socket *so_src, struct socket *so_dst) in splice_unlock_pair() argument
509 SOCK_IO_RECV_UNLOCK(so_src); in splice_unlock_pair()
518 so_splice_xfer_data(struct socket *so_src, struct socket *so_dst, off_t max, in so_splice_xfer_data() argument
528 SOCK_IO_RECV_ASSERT_LOCKED(so_src); in so_splice_xfer_data()
535 sb_src = &so_src->so_rcv; in so_splice_xfer_data()
543 SOCK_RECVBUF_LOCK(so_src); in so_splice_xfer_data()
546 SOCK_RECVBUF_UNLOCK(so_src); in so_splice_xfer_data()
551 error = soreceive_stream_locked(so_src, sb_src, NULL, in so_splice_xfer_data()
554 error = soreceive_generic_locked(so_src, NULL, in so_splice_xfer_data()
589 struct socket *so_src, *so_dst; in so_splice_xfer() local
605 so_src = sp->src; in so_splice_xfer()
607 max = sp->max > 0 ? sp->max - so_src->so_splice_sent : OFF_MAX; in so_splice_xfer()
617 splice_lock_pair(so_src, so_dst); in so_splice_xfer()
619 error = so_splice_xfer_data(so_src, so_dst, max, &len); in so_splice_xfer()
629 so_src->so_splice_sent += len; in so_splice_xfer()
631 splice_unlock_pair(so_src, so_dst); in so_splice_xfer()
642 (sp->max > 0 && so_src->so_splice_sent >= sp->max)) { in so_splice_xfer()
644 soref(so_src); in so_splice_xfer()
646 (void)so_unsplice(so_src, false); in so_splice_xfer()
647 sorele(so_src); in so_splice_xfer()
658 if (sbavail(&so_src->so_rcv) > 0 && in so_splice_xfer()