aboutsummaryrefslogtreecommitdiffstats
path: root/net/9p/trans_rdma.c
diff options
context:
space:
mode:
authorTom Tucker <tom@opengridcomputing.com>2008-10-23 17:30:13 -0400
committerEric Van Hensbergen <ericvh@gmail.com>2008-11-05 14:19:06 -0500
commit517ac45af4b55913587279d89001171c222f22e7 (patch)
treeb3f30f82d27c7b0df885152ce34e9f475f6470dd /net/9p/trans_rdma.c
parent75fa67706cce5272bcfc51ed646f2da21f3bdb6e (diff)
9p: rdma: Set trans prior to requesting async connection ops
The RDMA connection manager is fundamentally asynchronous. Since the async callback context is the client pointer, the transport in the client struct needs to be set prior to calling the first async op. Signed-off-by: Tom Tucker <tom@opengridcomputing.com> Signed-off-by: Eric Van Hensbergen <ericvh@gmail.com>
Diffstat (limited to 'net/9p/trans_rdma.c')
-rw-r--r--net/9p/trans_rdma.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/net/9p/trans_rdma.c b/net/9p/trans_rdma.c
index 8d6cc4777aae..4e9d2e673cf4 100644
--- a/net/9p/trans_rdma.c
+++ b/net/9p/trans_rdma.c
@@ -589,6 +589,9 @@ rdma_create_trans(struct p9_client *client, const char *addr, char *args)
589 if (IS_ERR(rdma->cm_id)) 589 if (IS_ERR(rdma->cm_id))
590 goto error; 590 goto error;
591 591
592 /* Associate the client with the transport */
593 client->trans = rdma;
594
592 /* Resolve the server's address */ 595 /* Resolve the server's address */
593 rdma->addr.sin_family = AF_INET; 596 rdma->addr.sin_family = AF_INET;
594 rdma->addr.sin_addr.s_addr = in_aton(addr); 597 rdma->addr.sin_addr.s_addr = in_aton(addr);
@@ -669,7 +672,6 @@ rdma_create_trans(struct p9_client *client, const char *addr, char *args)
669 if (err || (rdma->state != P9_RDMA_CONNECTED)) 672 if (err || (rdma->state != P9_RDMA_CONNECTED))
670 goto error; 673 goto error;
671 674
672 client->trans = rdma;
673 client->status = Connected; 675 client->status = Connected;
674 676
675 return 0; 677 return 0;