Re: [PATCH] tcp: do not promote SPLICE_F_NONBLOCK to socket O_NONBLOCK

From: Evgeniy Polyakov
Date: Fri Jul 18 2008 - 14:36:21 EST


On Fri, Jul 18, 2008 at 09:16:43PM +0300, Octavian Purdila (opurdila@xxxxxxxxxxx) wrote:
> tcp_read_sock
> ... -> skb_splice_bits -> spd_fill_page;
> on return (spd->nr_page is 1 and pipe->nrbufs is 1)
> ... -> skb_splice_bits -> spd_fill_page;
> on return (spd->nr_page is 1 and pipe->nrbufs is 2)
> ... -> skb_splice_bits -> spd_fill_page;
> on return (spd->nr_page is 1 and pipe->nrbufs is 3)
> ...
>
> and so on until pipe->nrbufs is 16. At than point, we will block in pipe_wait,
> inside splice_to_pipe.

Seems that SPLICE_F_NONBLOCK check should be propagated from
tcp_splice_read() into skb_splice_bits(), and this flag is actually
there already in tss.flags.

--
Evgeniy Polyakov
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/