smbd_recv(): switch to _copy_to_iter()

Just fold smbd_recv_buf() into it, and make it use _copy_to_iter() instead
of copying to buffer.  That makes the sucker work for any data-destination
iov_iter except ITER_IOVEC (which we never pass to it anyway), single-segment
or not (note that cifs_discard_from_socket() used to barf on cifs-over-rdma
connections) and gets rid of quite a bit of code (entire special-casing
ITER_BVEC part, that switch from hell, etc.).

Making it work for ITER_IOVEC would be also easy (just revert on possible
short copies), but that's really pointless - we never use it that way.

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
1 file changed