On Fri, 28 May 2010, Changli Gao wrote: > On Fri, May 28, 2010 at 6:13 PM, Miklos Szeredi <miklos@xxxxxxxxxx> wrote: > > On Fri, 28 May 2010, Changli Gao wrote: > >> 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. > > > > That may be true, but the patch is still nonsense. > > > > Look, your patch is updating/not updating sd->pos based on whether it > > is zero or not. It will prevent updating the position for sockets, > > but it will also prevent updating the position for regular files if > > the position is zero, which is really not what we want. > > I think you misread my patch. Right :) > Before checking the sd->pos, sd->pos > already is updated with the value returned by splice_read(), so if in > file is seekabble, sd->pos is non-zero when I checking it. I see the logic now. But it's really confusing, at least some comments would be needed. But I think it would be better not to try reusing sd->pos for reading, but supplying an "loff_t *read_ppos" to splice_direct_to_actor and leaving sd->pos alone (for the write side to use and update as necessary). Thanks, Miklos -- 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