diff options
| -rw-r--r-- | fs/cifs/smb2ops.c | 6 | ||||
| -rw-r--r-- | fs/cifs/transport.c | 11 |
2 files changed, 6 insertions, 11 deletions
diff --git a/fs/cifs/smb2ops.c b/fs/cifs/smb2ops.c index 73f9c6af4065..153238fc4fa9 100644 --- a/fs/cifs/smb2ops.c +++ b/fs/cifs/smb2ops.c | |||
| @@ -154,7 +154,11 @@ smb2_get_credits(struct mid_q_entry *mid) | |||
| 154 | { | 154 | { |
| 155 | struct smb2_sync_hdr *shdr = (struct smb2_sync_hdr *)mid->resp_buf; | 155 | struct smb2_sync_hdr *shdr = (struct smb2_sync_hdr *)mid->resp_buf; |
| 156 | 156 | ||
| 157 | return le16_to_cpu(shdr->CreditRequest); | 157 | if (mid->mid_state == MID_RESPONSE_RECEIVED |
| 158 | || mid->mid_state == MID_RESPONSE_MALFORMED) | ||
| 159 | return le16_to_cpu(shdr->CreditRequest); | ||
| 160 | |||
| 161 | return 0; | ||
| 158 | } | 162 | } |
| 159 | 163 | ||
| 160 | static int | 164 | static int |
diff --git a/fs/cifs/transport.c b/fs/cifs/transport.c index 202e0e84efdd..53532bd3f50d 100644 --- a/fs/cifs/transport.c +++ b/fs/cifs/transport.c | |||
| @@ -786,17 +786,8 @@ static void | |||
| 786 | cifs_compound_callback(struct mid_q_entry *mid) | 786 | cifs_compound_callback(struct mid_q_entry *mid) |
| 787 | { | 787 | { |
| 788 | struct TCP_Server_Info *server = mid->server; | 788 | struct TCP_Server_Info *server = mid->server; |
| 789 | unsigned int optype = mid->optype; | ||
| 790 | unsigned int credits_received = 0; | ||
| 791 | 789 | ||
| 792 | if (mid->mid_state == MID_RESPONSE_RECEIVED) { | 790 | add_credits(server, server->ops->get_credits(mid), mid->optype); |
| 793 | if (mid->resp_buf) | ||
| 794 | credits_received = server->ops->get_credits(mid); | ||
| 795 | else | ||
| 796 | cifs_dbg(FYI, "Bad state for cancelled MID\n"); | ||
| 797 | } | ||
| 798 | |||
| 799 | add_credits(server, credits_received, optype); | ||
| 800 | } | 791 | } |
| 801 | 792 | ||
| 802 | static void | 793 | static void |
