aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--fs/cifs/cifsglob.h1
-rw-r--r--fs/cifs/transport.c13
2 files changed, 4 insertions, 10 deletions
diff --git a/fs/cifs/cifsglob.h b/fs/cifs/cifsglob.h
index c57c0565547f..82e28f5515c8 100644
--- a/fs/cifs/cifsglob.h
+++ b/fs/cifs/cifsglob.h
@@ -422,7 +422,6 @@ struct mid_q_entry {
422 unsigned long when_sent; /* time when smb send finished */ 422 unsigned long when_sent; /* time when smb send finished */
423 unsigned long when_received; /* when demux complete (taken off wire) */ 423 unsigned long when_received; /* when demux complete (taken off wire) */
424#endif 424#endif
425 struct cifsSesInfo *ses; /* smb was sent to this server */
426 struct task_struct *tsk; /* task waiting for response */ 425 struct task_struct *tsk; /* task waiting for response */
427 struct smb_hdr *resp_buf; /* response buffer */ 426 struct smb_hdr *resp_buf; /* response buffer */
428 int midState; /* wish this were enum but can not pass to wait_event */ 427 int midState; /* wish this were enum but can not pass to wait_event */
diff --git a/fs/cifs/transport.c b/fs/cifs/transport.c
index ff8243a8fe3e..8e0d1c397c73 100644
--- a/fs/cifs/transport.c
+++ b/fs/cifs/transport.c
@@ -37,15 +37,11 @@ extern mempool_t *cifs_mid_poolp;
37extern struct kmem_cache *cifs_oplock_cachep; 37extern struct kmem_cache *cifs_oplock_cachep;
38 38
39static struct mid_q_entry * 39static struct mid_q_entry *
40AllocMidQEntry(const struct smb_hdr *smb_buffer, struct cifsSesInfo *ses) 40AllocMidQEntry(const struct smb_hdr *smb_buffer, struct TCP_Server_Info *server)
41{ 41{
42 struct mid_q_entry *temp; 42 struct mid_q_entry *temp;
43 43
44 if (ses == NULL) { 44 if (server == NULL) {
45 cERROR(1, ("Null session passed in to AllocMidQEntry"));
46 return NULL;
47 }
48 if (ses->server == NULL) {
49 cERROR(1, ("Null TCP session in AllocMidQEntry")); 45 cERROR(1, ("Null TCP session in AllocMidQEntry"));
50 return NULL; 46 return NULL;
51 } 47 }
@@ -62,12 +58,11 @@ AllocMidQEntry(const struct smb_hdr *smb_buffer, struct cifsSesInfo *ses)
62 /* do_gettimeofday(&temp->when_sent);*/ /* easier to use jiffies */ 58 /* do_gettimeofday(&temp->when_sent);*/ /* easier to use jiffies */
63 /* when mid allocated can be before when sent */ 59 /* when mid allocated can be before when sent */
64 temp->when_alloc = jiffies; 60 temp->when_alloc = jiffies;
65 temp->ses = ses;
66 temp->tsk = current; 61 temp->tsk = current;
67 } 62 }
68 63
69 spin_lock(&GlobalMid_Lock); 64 spin_lock(&GlobalMid_Lock);
70 list_add_tail(&temp->qhead, &ses->server->pending_mid_q); 65 list_add_tail(&temp->qhead, &server->pending_mid_q);
71 atomic_inc(&midCount); 66 atomic_inc(&midCount);
72 temp->midState = MID_REQUEST_ALLOCATED; 67 temp->midState = MID_REQUEST_ALLOCATED;
73 spin_unlock(&GlobalMid_Lock); 68 spin_unlock(&GlobalMid_Lock);
@@ -400,7 +395,7 @@ static int allocate_mid(struct cifsSesInfo *ses, struct smb_hdr *in_buf,
400 return -EAGAIN; 395 return -EAGAIN;
401 /* else ok - we are setting up session */ 396 /* else ok - we are setting up session */
402 } 397 }
403 *ppmidQ = AllocMidQEntry(in_buf, ses); 398 *ppmidQ = AllocMidQEntry(in_buf, ses->server);
404 if (*ppmidQ == NULL) 399 if (*ppmidQ == NULL)
405 return -ENOMEM; 400 return -ENOMEM;
406 return 0; 401 return 0;