On Fri, May 28, 2010 at 5:42 PM, Miklos Szeredi <miklos@xxxxxxxxxx> wrote: > On Wed, 26 May 2010, Changli Gao wrote: >> fix updating sd->pos wrongly. >> >> In error path, we don't need to updating sd->pos, if the file isn't seekable. > > This patch is nonsense. Why should we handle sd->pos != 0 case > differently? > If the in file isn't seekable, its splice_read won't update *ppos, so in the error path, we'd better not change it too. Otherwise, some assumption will go wrong. ssize_t tcp_splice_read(struct socket *sock, loff_t *ppos, struct pipe_inode_info *pipe, size_t len, unsigned int flags) { struct sock *sk = sock->sk; struct tcp_splice_state tss = { .pipe = pipe, .len = len, .flags = flags, }; long timeo; ssize_t spliced; int ret; /* * We can't seek on a socket input */ if (unlikely(*ppos)) return -ESPIPE; -- Regards, Changli Gao(xiaosuo@xxxxxxxxx) -- To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html