diff options
Diffstat (limited to 'fs/cifs/connect.c')
-rw-r--r-- | fs/cifs/connect.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/fs/cifs/connect.c b/fs/cifs/connect.c index 494455ed4352..676bbf2bb56d 100644 --- a/fs/cifs/connect.c +++ b/fs/cifs/connect.c | |||
@@ -415,7 +415,10 @@ incomplete_rcv: | |||
415 | msleep(1); /* minimum sleep to prevent looping | 415 | msleep(1); /* minimum sleep to prevent looping |
416 | allowing socket to clear and app threads to set | 416 | allowing socket to clear and app threads to set |
417 | tcpStatus CifsNeedReconnect if server hung */ | 417 | tcpStatus CifsNeedReconnect if server hung */ |
418 | continue; | 418 | if (pdu_length < 4) |
419 | goto incomplete_rcv; | ||
420 | else | ||
421 | continue; | ||
419 | } else if (length <= 0) { | 422 | } else if (length <= 0) { |
420 | if (server->tcpStatus == CifsNew) { | 423 | if (server->tcpStatus == CifsNew) { |
421 | cFYI(1, ("tcp session abend after SMBnegprot")); | 424 | cFYI(1, ("tcp session abend after SMBnegprot")); |
@@ -543,6 +546,7 @@ incomplete_rcv: | |||
543 | allowing socket to clear and app | 546 | allowing socket to clear and app |
544 | threads to set tcpStatus | 547 | threads to set tcpStatus |
545 | CifsNeedReconnect if server hung*/ | 548 | CifsNeedReconnect if server hung*/ |
549 | length = 0; | ||
546 | continue; | 550 | continue; |
547 | } else if (length <= 0) { | 551 | } else if (length <= 0) { |
548 | cERROR(1, ("Received no data, expecting %d", | 552 | cERROR(1, ("Received no data, expecting %d", |