X-Git-Url: http://pileus.org/git/?a=blobdiff_plain;f=fs%2Fsmbfs%2Fsock.c;h=e37fe4deebd0ebe5050e1fbab7c9ef7cbc2ad4db;hb=7a82323da3d21ea59a0509569fc5c7bc5aa7eed7;hp=92ea6b2367d7f69224462396b021d0f23937d4dc;hpb=f0eef25339f92f7cd4aeea23d9ae97987a5a1e82;p=~andy%2Flinux diff --git a/fs/smbfs/sock.c b/fs/smbfs/sock.c index 92ea6b2367d..e37fe4deebd 100644 --- a/fs/smbfs/sock.c +++ b/fs/smbfs/sock.c @@ -17,7 +17,6 @@ #include #include #include -#include #include #include #include @@ -330,9 +329,8 @@ smb_receive(struct smb_sb_info *server, struct smb_request *req) msg.msg_control = NULL; /* Dont repeat bytes and count available bufferspace */ - rlen = smb_move_iov(&p, &num, iov, req->rq_bytes_recvd); - if (req->rq_rlen < rlen) - rlen = req->rq_rlen; + rlen = min_t(int, smb_move_iov(&p, &num, iov, req->rq_bytes_recvd), + (req->rq_rlen - req->rq_bytes_recvd)); result = kernel_recvmsg(sock, &msg, p, num, rlen, flags);