diff options
Diffstat (limited to 'fs/cifs/misc.c')
| -rw-r--r-- | fs/cifs/misc.c | 12 | 
1 files changed, 5 insertions, 7 deletions
diff --git a/fs/cifs/misc.c b/fs/cifs/misc.c index 0c684ae4c071..907531ac5888 100644 --- a/fs/cifs/misc.c +++ b/fs/cifs/misc.c @@ -304,12 +304,10 @@ header_assemble(struct smb_hdr *buffer, char smb_command /* command */ ,  	memset(temp, 0, 256); /* bigger than MAX_CIFS_HDR_SIZE */ -	buffer->smb_buf_length = +	buffer->smb_buf_length = cpu_to_be32(  	    (2 * word_count) + sizeof(struct smb_hdr) -  	    4 /*  RFC 1001 length field does not count */  + -	    2 /* for bcc field itself */ ; -	/* Note that this is the only network field that has to be converted -	   to big endian and it is done just before we send it */ +	    2 /* for bcc field itself */) ;  	buffer->Protocol[0] = 0xFF;  	buffer->Protocol[1] = 'S'; @@ -424,7 +422,7 @@ check_smb_hdr(struct smb_hdr *smb, __u16 mid)  int  checkSMB(struct smb_hdr *smb, __u16 mid, unsigned int length)  { -	__u32 len = smb->smb_buf_length; +	__u32 len = be32_to_cpu(smb->smb_buf_length);  	__u32 clc_len;  /* calculated length */  	cFYI(0, "checkSMB Length: 0x%x, smb_buf_length: 0x%x", length, len); @@ -464,7 +462,7 @@ checkSMB(struct smb_hdr *smb, __u16 mid, unsigned int length)  	if (check_smb_hdr(smb, mid))  		return 1; -	clc_len = smbCalcSize_LE(smb); +	clc_len = smbCalcSize(smb);  	if (4 + len != length) {  		cERROR(1, "Length read does not match RFC1001 length %d", @@ -521,7 +519,7 @@ is_valid_oplock_break(struct smb_hdr *buf, struct TCP_Server_Info *srv)  			(struct smb_com_transaction_change_notify_rsp *)buf;  		struct file_notify_information *pnotify;  		__u32 data_offset = 0; -		if (get_bcc_le(buf) > sizeof(struct file_notify_information)) { +		if (get_bcc(buf) > sizeof(struct file_notify_information)) {  			data_offset = le32_to_cpu(pSMBr->DataOffset);  			pnotify = (struct file_notify_information *)  |