Message ID | 20100628151815.B7B2BF88CE@sepang.rtg.net |
---|---|
State | Accepted |
Delegated to: | Leann Ogasawara |
Headers | show |
This patch was tested and confirmed to resolve the issue. Applied to Maverick linux master. Thanks, Leann On Mon, 2010-06-28 at 09:18 -0600, Tim Gardner wrote: > The following changes since commit 2fbc0c814c4ae7aaaf17ffa34c22354b835183af: > Leann Ogasawara (1): > UBUNTU: Ubuntu-2.6.35-6.8 > > are available in the git repository at: > > git://kernel.ubuntu.com/rtg/ubuntu-maverick.git lp588861-PAD > > Tim Gardner (1): > [Upstream] direct_splice_actor() should not use pos in sd > > fs/splice.c | 3 ++- > 1 files changed, 2 insertions(+), 1 deletions(-) > From 5d48c5b970784bb30a15156828f797437c6c542b Mon Sep 17 00:00:00 2001 > From: Tim Gardner <tim.gardner@canonical.com> > Date: Mon, 28 Jun 2010 06:46:11 -0600 > Subject: [PATCH] [Upstream] direct_splice_actor() should not use pos in sd > > BugLink: http://bugs.launchpad.net/bugs/588861 > > This patch has not yet been accepted by upstream, so we need to watch what happens > during rc4/rc5 . > > direct_splice_actor() shouldn't use sd->pos, as sd->pos is for file reading, > file->f_pos should be used instead. > > Signed-off-by: Changli Gao <xiaosuo@gmail.com> > Signed-off-by: Tim Gardner <tim.gardner@canonical.com> > --- > fs/splice.c | 3 ++- > 1 files changed, 2 insertions(+), 1 deletions(-) > > diff --git a/fs/splice.c b/fs/splice.c > index d34b306..ce5949a 100644 > --- a/fs/splice.c > +++ b/fs/splice.c > @@ -1284,7 +1284,8 @@ static int direct_splice_actor(struct pipe_inode_info *pipe, > { > struct file *file = sd->u.file; > > - return do_splice_from(pipe, file, &sd->pos, sd->total_len, sd->flags); > + return do_splice_from(pipe, file, &file->f_pos, sd->total_len, > + sd->flags); > } > > /**
diff --git a/fs/splice.c b/fs/splice.c index d34b306..ce5949a 100644 --- a/fs/splice.c +++ b/fs/splice.c @@ -1284,7 +1284,8 @@ static int direct_splice_actor(struct pipe_inode_info *pipe, { struct file *file = sd->u.file; - return do_splice_from(pipe, file, &sd->pos, sd->total_len, sd->flags); + return do_splice_from(pipe, file, &file->f_pos, sd->total_len, + sd->flags); } /**