int rc;
struct kvec *iov = rqst->rq_iov;
int n_vec = rqst->rq_nvec;
- bool is_smb2 = HEADER_PREAMBLE_SIZE(server) == 0;
/* iov[0] is actual data and not the rfc1002 length for SMB2+ */
- if (is_smb2) {
+ if (!is_smb1(server)) {
if (iov[0].iov_len <= 4)
return -EIO;
i = 0;
#endif
};
+static inline bool is_smb1(struct TCP_Server_Info *server)
+{
+ return HEADER_PREAMBLE_SIZE(server) != 0;
+}
+
static inline void cifs_server_lock(struct TCP_Server_Info *server)
{
unsigned int nofs_flag = memalloc_nofs_save();
/*
* SMB1 does not use credits.
*/
- if (HEADER_PREAMBLE_SIZE(server))
+ if (is_smb1(server))
return 0;
return le16_to_cpu(shdr->CreditRequest);
/*
* SMB1 does not use credits.
*/
- if (HEADER_PREAMBLE_SIZE(server))
+ if (is_smb1(server))
return;
if (shdr->CreditRequest) {
if (length < 0)
continue;
- if (HEADER_PREAMBLE_SIZE(server) == 0)
- server->total_read = 0;
- else
+ if (is_smb1(server))
server->total_read = length;
+ else
+ server->total_read = 0;
/*
* The right amount was read from socket - 4 bytes,
int nvec;
unsigned long buflen = 0;
- if (HEADER_PREAMBLE_SIZE(server) == 0 && rqst->rq_nvec >= 2 &&
+ if (!is_smb1(server) && rqst->rq_nvec >= 2 &&
rqst->rq_iov[0].iov_len == 4) {
iov = &rqst->rq_iov[1];
nvec = rqst->rq_nvec - 1;
sigprocmask(SIG_BLOCK, &mask, &oldmask);
/* Generate a rfc1002 marker for SMB2+ */
- if (HEADER_PREAMBLE_SIZE(server) == 0) {
+ if (!is_smb1(server)) {
struct kvec hiov = {
.iov_base = &rfc1002_marker,
.iov_len = 4