cifs: smbd: Check for iov length on sending the last iov
authorLong Li <longli@microsoft.com>
Tue, 17 Apr 2018 19:17:05 +0000 (12:17 -0700)
committerSteve French <smfrench@gmail.com>
Thu, 19 Apr 2018 03:02:49 +0000 (22:02 -0500)
When sending the last iov that breaks into smaller buffers to fit the
transfer size, it's necessary to check if this is the last iov.

If this is the latest iov, stop and proceed to send pages.

Signed-off-by: Long Li <longli@microsoft.com>
Cc: stable@vger.kernel.org
Signed-off-by: Steve French <stfrench@microsoft.com>
Reviewed-by: Ronnie Sahlberg <lsahlber@redhat.com>
fs/cifs/smbdirect.c

index 5008af546dd16d6e276953b24b354cd7bb54796d..d611ed0537fd224b4333860d0e78349a8fd05b7a 100644 (file)
@@ -2194,6 +2194,8 @@ int smbd_send(struct smbd_connection *info, struct smb_rqst *rqst)
                                                goto done;
                                }
                                i++;
+                               if (i == rqst->rq_nvec)
+                                       break;
                        }
                        start = i;
                        buflen = 0;