Message ID | 1358351822-7675-186-git-send-email-herton.krzesinski@canonical.com |
---|---|
State | New |
Headers | show |
On Wed, 2013-01-16 at 13:56 -0200, Herton Ronaldo Krzesinski wrote: > 3.5.7.3 -stable review patch. If anyone has any objections, please let me know. > > ------------------ > > From: Eric Dumazet <edumazet@google.com> > > commit ae62ca7b03217be5e74759dc6d7698c95df498b3 upstream. > > commit 35f9c09fe9c72e (tcp: tcp_sendpages() should call tcp_push() once) > added an internal flag : MSG_SENDPAGE_NOTLAST meant to be set on all > frags but the last one for a splice() call. [...] David, I think this is needed for 3.0 and 3.2 as well since 35f9c09fe9c72e was backported to them. You previously included it in updates for 3.4 and 3.7. Ben.
From: Ben Hutchings <ben@decadent.org.uk> Date: Fri, 01 Feb 2013 18:40:57 +0100 > On Wed, 2013-01-16 at 13:56 -0200, Herton Ronaldo Krzesinski wrote: >> 3.5.7.3 -stable review patch. If anyone has any objections, please let me know. >> >> ------------------ >> >> From: Eric Dumazet <edumazet@google.com> >> >> commit ae62ca7b03217be5e74759dc6d7698c95df498b3 upstream. >> >> commit 35f9c09fe9c72e (tcp: tcp_sendpages() should call tcp_push() once) >> added an internal flag : MSG_SENDPAGE_NOTLAST meant to be set on all >> frags but the last one for a splice() call. > [...] > > David, I think this is needed for 3.0 and 3.2 as well since > 35f9c09fe9c72e was backported to them. You previously included it in > updates for 3.4 and 3.7. Ok, queued up, thanks.
diff --git a/fs/splice.c b/fs/splice.c index 7bf08fa..6cb3acb 100644 --- a/fs/splice.c +++ b/fs/splice.c @@ -696,8 +696,10 @@ static int pipe_to_sendpage(struct pipe_inode_info *pipe, return -EINVAL; more = (sd->flags & SPLICE_F_MORE) ? MSG_MORE : 0; - if (sd->len < sd->total_len) + + if (sd->len < sd->total_len && pipe->nrbufs > 1) more |= MSG_SENDPAGE_NOTLAST; + return file->f_op->sendpage(file, buf->page, buf->offset, sd->len, &pos, more); }