2017-11-01 9:53 GMT-07:00 Pavel Shilovsky <piastryyy@xxxxxxxxx>: > 2017-10-23 20:01 GMT-07:00 Ronnie Sahlberg <lsahlber@xxxxxxxxxx>: >> Signed-off-by: Ronnie Sahlberg <lsahlber@xxxxxxxxxx> >> --- >> fs/cifs/smb2pdu.c | 30 +++++++++++++++--------------- >> 1 file changed, 15 insertions(+), 15 deletions(-) >> >> diff --git a/fs/cifs/smb2pdu.c b/fs/cifs/smb2pdu.c >> index 6ff4c275ca9a..efa06068e7e1 100644 >> --- a/fs/cifs/smb2pdu.c >> +++ b/fs/cifs/smb2pdu.c >> @@ -2669,27 +2669,27 @@ SMB2_read(const unsigned int xid, struct cifs_io_parms *io_parms, >> cifs_small_buf_release(req); >> >> rsp = (struct smb2_read_rsp *)rsp_iov.iov_base; >> - shdr = get_sync_hdr(rsp); >> >> - if (shdr->Status == STATUS_END_OF_FILE) { >> + if (rc) { >> + if (rc != -ENODATA) { >> + cifs_stats_fail_inc(io_parms->tcon, SMB2_READ_HE); >> + cifs_dbg(VFS, "Send error in read = %d\n", rc); >> + } >> free_rsp_buf(resp_buftype, rsp_iov.iov_base); >> - return 0; >> + return rc == -ENODATA ? 0 : rc; >> } >> >> - if (rc) { >> - cifs_stats_fail_inc(io_parms->tcon, SMB2_READ_HE); >> - cifs_dbg(VFS, "Send error in read = %d\n", rc); >> - } else { >> - *nbytes = le32_to_cpu(rsp->DataLength); >> - if ((*nbytes > CIFS_MAX_MSGSIZE) || >> - (*nbytes > io_parms->length)) { >> - cifs_dbg(FYI, "bad length %d for count %d\n", >> - *nbytes, io_parms->length); >> - rc = -EIO; >> - *nbytes = 0; >> - } >> + *nbytes = le32_to_cpu(rsp->DataLength); >> + if ((*nbytes > CIFS_MAX_MSGSIZE) || >> + (*nbytes > io_parms->length)) { >> + cifs_dbg(FYI, "bad length %d for count %d\n", >> + *nbytes, io_parms->length); >> + rc = -EIO; >> + *nbytes = 0; >> } >> >> + shdr = get_sync_hdr(rsp); >> + >> if (*buf) { >> memcpy(*buf, (char *)shdr + rsp->DataOffset, *nbytes); >> free_rsp_buf(resp_buftype, rsp_iov.iov_base); >> -- >> 2.13.3 >> > > Looks good. > > Reviewed-by: Pavel Shilovsky <pshilov@xxxxxxxxxxxxx> It seems like a good stable candidate. Thoughts? -- Best regards, Pavel Shilovsky -- To unsubscribe from this list: send the line "unsubscribe linux-cifs" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html