s3: smbd: Performance optimization for RECVFILE.
authorJeremy Allison <jra@samba.org>
Wed, 9 Apr 2014 16:50:46 +0000 (09:50 -0700)
committerJeremy Allison <jra@samba.org>
Thu, 10 Apr 2014 17:49:07 +0000 (19:49 +0200)
commitf5a3d74264abb25009e73b1b35d62db34fa62343
treecfd4920132af516deec1f33bf0e777847b7bcd15
parent88ba81140eb98494fb48ac29b9450e582ceaf10d
s3: smbd: Performance optimization for RECVFILE.

Based on work proposed by Jones <jones.kstw@gmail.com>.

Removes set_blocking()/set_unblocking() fcntl
calls around RECVFILE on the non-blocking socket.
Instead uses RECVFILE in a loop, and only drops
back to set_blocking()/set_unblocking() once
RECVFILE returns -1/EAGAIN/EWOULDBLOCK.

From the samba-technical list:

------------------------------------------------
The iometer 512b sequential write shows following result,
Before applying this patch: 75333 IOps
After applying this patch: 82691 IOps
------------------------------------------------

Signed-off-by: Jeremy Allison <jra@samba.org>
Reviewed-by: Stefan Metzmacher <metze@samba.org>
source3/smbd/vfs.c