On Mon, Jul 16 2007, OGAWA Hirofumi wrote: > Jens Axboe <[EMAIL PROTECTED]> writes: > > >> nfsd_vfs_read() path. > >> > >> nfsd_vfs_read() > >> splice_direct_to_actor() > >> while(len) { > >> do_splice_to() [update sd->pos] > >> -> generic_file_splice_read() [read from sd->pos] > >> nfsd_direct_splice_actor() > >> -> __splice_from_pipe() [update sd->pos] > >> } > >> > >> do_splice_to() updates sd->pos for read, and pass updated sd to > >> __splice_from_pipe(), and __splice_from_pipe() updates sd->pos for > >> write. So, next do_splice_to() read from wrong position. > > > > Ah, I see. Copying the structure over would work, but it seems like a > > big work-around for something that is essentially bad behaviour in the > > splice core for direct splicing. > > > > Can you check if this works for you? > > Simple test was done. The patch works for me.
Great, thanks a lot for retesting. I'll get the patch upstream asap. -- Jens Axboe - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/