Messages in this thread | | | Subject | Re: [PATCH] splice: fix wrong __splice_from_pipe() usage | From | OGAWA Hirofumi <> | Date | Mon, 16 Jul 2007 21:35:52 +0900 |
| |
Jens Axboe <jens.axboe@oracle.com> 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.
Thanks. -- OGAWA Hirofumi <hirofumi@mail.parknet.co.jp> - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |