Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 211223
b: refs/heads/master
c: f569599
h: refs/heads/master
i:
  211221: 8f3242d
  211219: 5bf59f2
  211215: c2fa944
v: v3
  • Loading branch information
Jeff Layton authored and Steve French committed Oct 1, 2010
1 parent 0840dec commit 03a6952
Show file tree
Hide file tree
Showing 2 changed files with 34 additions and 17 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 522440ed55d2cc8855ea5f82bc067e0483b2e1be
refs/heads/master: f569599ae70f0899035f8d5876a7939f629c5976
49 changes: 33 additions & 16 deletions trunk/fs/cifs/cifssmb.c
Original file line number Diff line number Diff line change
Expand Up @@ -232,7 +232,7 @@ static int
small_smb_init(int smb_command, int wct, struct cifsTconInfo *tcon,
void **request_buf)
{
int rc = 0;
int rc;

rc = cifs_reconnect_tcon(tcon, smb_command);
if (rc)
Expand All @@ -250,7 +250,7 @@ small_smb_init(int smb_command, int wct, struct cifsTconInfo *tcon,
if (tcon != NULL)
cifs_stats_inc(&tcon->num_smbs_sent);

return rc;
return 0;
}

int
Expand Down Expand Up @@ -281,16 +281,9 @@ small_smb_init_no_tc(const int smb_command, const int wct,

/* If the return code is zero, this function must fill in request_buf pointer */
static int
smb_init(int smb_command, int wct, struct cifsTconInfo *tcon,
void **request_buf /* returned */ ,
void **response_buf /* returned */ )
__smb_init(int smb_command, int wct, struct cifsTconInfo *tcon,
void **request_buf, void **response_buf)
{
int rc = 0;

rc = cifs_reconnect_tcon(tcon, smb_command);
if (rc)
return rc;

*request_buf = cifs_buf_get();
if (*request_buf == NULL) {
/* BB should we add a retry in here if not a writepage? */
Expand All @@ -309,7 +302,31 @@ smb_init(int smb_command, int wct, struct cifsTconInfo *tcon,
if (tcon != NULL)
cifs_stats_inc(&tcon->num_smbs_sent);

return rc;
return 0;
}

/* If the return code is zero, this function must fill in request_buf pointer */
static int
smb_init(int smb_command, int wct, struct cifsTconInfo *tcon,
void **request_buf, void **response_buf)
{
int rc;

rc = cifs_reconnect_tcon(tcon, smb_command);
if (rc)
return rc;

return __smb_init(smb_command, wct, tcon, request_buf, response_buf);
}

static int
smb_init_no_reconnect(int smb_command, int wct, struct cifsTconInfo *tcon,
void **request_buf, void **response_buf)
{
if (tcon->ses->need_reconnect || tcon->need_reconnect)
return -EHOSTDOWN;

return __smb_init(smb_command, wct, tcon, request_buf, response_buf);
}

static int validate_t2(struct smb_t2_rsp *pSMB)
Expand Down Expand Up @@ -4534,8 +4551,8 @@ CIFSSMBQFSUnixInfo(const int xid, struct cifsTconInfo *tcon)

cFYI(1, "In QFSUnixInfo");
QFSUnixRetry:
rc = smb_init(SMB_COM_TRANSACTION2, 15, tcon, (void **) &pSMB,
(void **) &pSMBr);
rc = smb_init_no_reconnect(SMB_COM_TRANSACTION2, 15, tcon,
(void **) &pSMB, (void **) &pSMBr);
if (rc)
return rc;

Expand Down Expand Up @@ -4604,8 +4621,8 @@ CIFSSMBSetFSUnixInfo(const int xid, struct cifsTconInfo *tcon, __u64 cap)
cFYI(1, "In SETFSUnixInfo");
SETFSUnixRetry:
/* BB switch to small buf init to save memory */
rc = smb_init(SMB_COM_TRANSACTION2, 15, tcon, (void **) &pSMB,
(void **) &pSMBr);
rc = smb_init_no_reconnect(SMB_COM_TRANSACTION2, 15, tcon,
(void **) &pSMB, (void **) &pSMBr);
if (rc)
return rc;

Expand Down

0 comments on commit 03a6952

Please sign in to comment.