[CIFS] Can't rely on iov length and base when kernel_recvmsg returns error
authorSteve French <sfrench@us.ibm.com>
Mon, 3 Nov 2008 20:46:21 +0000 (20:46 +0000)
committerSteve French <sfrench@us.ibm.com>
Mon, 3 Nov 2008 20:46:21 +0000 (20:46 +0000)
commitc527c8a7ffa18400c2c1488f7ab5aff5e83f3c8e
tree4f051c90690aa89099d169baa7fdbce2a01cdea1
parenta75952b72a0fff3031124003e62118111aed42c1
[CIFS] Can't rely on iov length and base when kernel_recvmsg returns error

When retrying kernel_recvmsg, reset iov_base and iov_len.

Note comment from Sridhar: "In the normal path, iov.iov_len is clearly set to 4. But i think you are
running into a case where kernel_recvmsg() is called via 'goto incomplete_rcv'
It happens if the previous call fails with EAGAIN.
If you want to call recvmsg() after EAGAIN failure, you need to reset iov."

Signed-off-by: Shirish Pargaonkar <shirishp@us.ibm.com>
Signed-off-by: Steve French <sfrench@us.ibm.com>
fs/cifs/connect.c