aboutsummaryrefslogtreecommitdiffstats
path: root/fs/cifs/cifssmb.c
diff options
context:
space:
mode:
Diffstat (limited to 'fs/cifs/cifssmb.c')
-rw-r--r--fs/cifs/cifssmb.c33
1 files changed, 22 insertions, 11 deletions
diff --git a/fs/cifs/cifssmb.c b/fs/cifs/cifssmb.c
index b339f5f128da..a6ff406ac6b4 100644
--- a/fs/cifs/cifssmb.c
+++ b/fs/cifs/cifssmb.c
@@ -132,10 +132,13 @@ small_smb_init(int smb_command, int wct, struct cifsTconInfo *tcon,
132 /* Give Demultiplex thread up to 10 seconds to 132 /* Give Demultiplex thread up to 10 seconds to
133 reconnect, should be greater than cifs socket 133 reconnect, should be greater than cifs socket
134 timeout which is 7 seconds */ 134 timeout which is 7 seconds */
135 while(tcon->ses->server->tcpStatus == CifsNeedReconnect) { 135 while(tcon->ses->server->tcpStatus ==
136 CifsNeedReconnect) {
136 wait_event_interruptible_timeout(tcon->ses->server->response_q, 137 wait_event_interruptible_timeout(tcon->ses->server->response_q,
137 (tcon->ses->server->tcpStatus == CifsGood), 10 * HZ); 138 (tcon->ses->server->tcpStatus ==
138 if (tcon->ses->server->tcpStatus == CifsNeedReconnect) { 139 CifsGood), 10 * HZ);
140 if (tcon->ses->server->tcpStatus ==
141 CifsNeedReconnect) {
139 /* on "soft" mounts we wait once */ 142 /* on "soft" mounts we wait once */
140 if ((tcon->retry == FALSE) || 143 if ((tcon->retry == FALSE) ||
141 (tcon->ses->status == CifsExiting)) { 144 (tcon->ses->status == CifsExiting)) {
@@ -209,7 +212,8 @@ small_smb_init(int smb_command, int wct, struct cifsTconInfo *tcon,
209 return -ENOMEM; 212 return -ENOMEM;
210 } 213 }
211 214
212 header_assemble((struct smb_hdr *) *request_buf, smb_command, tcon,wct); 215 header_assemble((struct smb_hdr *) *request_buf, smb_command,
216 tcon,wct);
213 217
214 if (tcon != NULL) 218 if (tcon != NULL)
215 cifs_stats_inc(&tcon->num_smbs_sent); 219 cifs_stats_inc(&tcon->num_smbs_sent);
@@ -274,9 +278,11 @@ smb_init(int smb_command, int wct, struct cifsTconInfo *tcon,
274 /* Give Demultiplex thread up to 10 seconds to 278 /* Give Demultiplex thread up to 10 seconds to
275 reconnect, should be greater than cifs socket 279 reconnect, should be greater than cifs socket
276 timeout which is 7 seconds */ 280 timeout which is 7 seconds */
277 while(tcon->ses->server->tcpStatus == CifsNeedReconnect) { 281 while (tcon->ses->server->tcpStatus ==
282 CifsNeedReconnect) {
278 wait_event_interruptible_timeout(tcon->ses->server->response_q, 283 wait_event_interruptible_timeout(tcon->ses->server->response_q,
279 (tcon->ses->server->tcpStatus == CifsGood), 10 * HZ); 284 (tcon->ses->server->tcpStatus ==
285 CifsGood), 10 * HZ);
280 if (tcon->ses->server->tcpStatus == 286 if (tcon->ses->server->tcpStatus ==
281 CifsNeedReconnect) { 287 CifsNeedReconnect) {
282 /* on "soft" mounts we wait once */ 288 /* on "soft" mounts we wait once */
@@ -381,7 +387,8 @@ static int validate_t2(struct smb_t2_rsp *pSMB)
381 /* check that bcc is less than negotiated smb buffer */ 387 /* check that bcc is less than negotiated smb buffer */
382 total_size = le16_to_cpu(pSMB->t2_rsp.ParameterCount); 388 total_size = le16_to_cpu(pSMB->t2_rsp.ParameterCount);
383 if (total_size < 512) { 389 if (total_size < 512) {
384 total_size+=le16_to_cpu(pSMB->t2_rsp.DataCount); 390 total_size +=
391 le16_to_cpu(pSMB->t2_rsp.DataCount);
385 /* BCC le converted in SendReceive */ 392 /* BCC le converted in SendReceive */
386 pBCC = (pSMB->hdr.WordCount * 2) + 393 pBCC = (pSMB->hdr.WordCount * 2) +
387 sizeof(struct smb_hdr) + 394 sizeof(struct smb_hdr) +
@@ -2608,7 +2615,7 @@ CIFSSMBQueryReparseLinkInfo(const int xid, struct cifsTconInfo *tcon,
2608 reparse_buf->TargetNameOffset + 2615 reparse_buf->TargetNameOffset +
2609 reparse_buf->TargetNameLen) > 2616 reparse_buf->TargetNameLen) >
2610 end_of_smb) { 2617 end_of_smb) {
2611 cFYI(1,("reparse buf extended beyond SMB")); 2618 cFYI(1,("reparse buf goes beyond SMB"));
2612 rc = -EIO; 2619 rc = -EIO;
2613 goto qreparse_out; 2620 goto qreparse_out;
2614 } 2621 }
@@ -2632,7 +2639,8 @@ CIFSSMBQueryReparseLinkInfo(const int xid, struct cifsTconInfo *tcon,
2632 } 2639 }
2633 } else { 2640 } else {
2634 rc = -EIO; 2641 rc = -EIO;
2635 cFYI(1,("Invalid return data count on get reparse info ioctl")); 2642 cFYI(1, ("Invalid return data count on "
2643 "get reparse info ioctl"));
2636 } 2644 }
2637 symlinkinfo[buflen] = 0; /* just in case so the caller 2645 symlinkinfo[buflen] = 0; /* just in case so the caller
2638 does not go off the end of the buffer */ 2646 does not go off the end of the buffer */
@@ -2750,7 +2758,8 @@ static __u16 ACL_to_cifs_posix(char *parm_data, const char *pACL,
2750 return 0; 2758 return 0;
2751 2759
2752 count = posix_acl_xattr_count((size_t)buflen); 2760 count = posix_acl_xattr_count((size_t)buflen);
2753 cFYI(1,("setting acl with %d entries from buf of length %d and version of %d", 2761 cFYI(1,("setting acl with %d entries from buf of length %d and "
2762 "version of %d",
2754 count, buflen, le32_to_cpu(local_acl->a_version))); 2763 count, buflen, le32_to_cpu(local_acl->a_version)));
2755 if (le32_to_cpu(local_acl->a_version) != 2) { 2764 if (le32_to_cpu(local_acl->a_version) != 2) {
2756 cFYI(1, ("unknown POSIX ACL version %d", 2765 cFYI(1, ("unknown POSIX ACL version %d",
@@ -3957,7 +3966,9 @@ getDFSRetry:
3957 (8 /* sizeof start of data block */ + 3966 (8 /* sizeof start of data block */ +
3958 data_offset + 3967 data_offset +
3959 (char *) &pSMBr->hdr.Protocol); 3968 (char *) &pSMBr->hdr.Protocol);
3960 cFYI(1,("num_referrals: %d dfs flags: 0x%x ... \nfor referral one refer size: 0x%x srv type: 0x%x refer flags: 0x%x ttl: 0x%x", 3969 cFYI(1,("num_referrals: %d dfs flags: 0x%x ... \n"
3970 "for referral one refer size: 0x%x srv "
3971 "type: 0x%x refer flags: 0x%x ttl: 0x%x",
3961 le16_to_cpu(pSMBr->NumberOfReferrals), 3972 le16_to_cpu(pSMBr->NumberOfReferrals),
3962 le16_to_cpu(pSMBr->DFSFlags), 3973 le16_to_cpu(pSMBr->DFSFlags),
3963 le16_to_cpu(referrals->ReferralSize), 3974 le16_to_cpu(referrals->ReferralSize),