hi,

Just do some debugging, and found something. I hope this do help. Correct me if 
anything wrong.

I'm using samba-3.2.2.
For some reason, Linux can not splice a socket and a filefd directly, which 
samba does so.

In linux, sys_splice calls do_splice, which would require either in or out fd 
to be a PIPE(FIFO).
Both parameter (fromfd, tofd) that  samba sent with splice failed the test 
S_ISFIFO() in linux.

Maybe it would work to add an addition FIFO? splice(fromfd, FIFO) and 
splice(FIFO, tofd)?

Best Regards,
Mac Lin

> Date: Thu, 18 Sep 2008 16:01:29 +0200
> From: [EMAIL PROTECTED]
> To: [EMAIL PROTECTED]
> CC: [EMAIL PROTECTED]; samba@lists.samba.org
> Subject: Re: [Samba] Samba write performance in kernel
> 
> On Thu, Sep 18, 2008 at 09:45:43PM +0800, Lin Mac wrote:
> > > On Mon, Sep 15, 2008 at 02:44:32PM +0800, Lin Mac wrote:
> > > This is a kernel implementation detail. Remember Samba
> > > runs on many other kernels, not just Linux. Linux has
> > > splice, *BSD has receivefile, Solaris probably has
> > > something different.
> 
> > Samba using splice on Linux doesn't work, that is for sure. 
> 
> And there's no way that this can be fixed?
> 
> Volker

_________________________________________________________________
用部落格分享照片、影音、趣味小工具和最愛清單,盡情秀出你自己 — Windows Live Spaces
http://spaces.live.com/
-- 
To unsubscribe from this list go to the following URL and read the
instructions:  https://lists.samba.org/mailman/listinfo/samba

Reply via email to