diff options
author | Simon Derr <simon.derr@bull.net> | 2014-03-10 11:38:52 -0400 |
---|---|---|
committer | Eric Van Hensbergen <ericvh@gmail.com> | 2014-03-25 17:38:15 -0400 |
commit | 0bfd6845c0b5e3df3507d2b4d230478980e7f04a (patch) | |
tree | abfd8e782c669baa4f16922ffc0e002eeb0af153 /net | |
parent | 931700d26bf17c583805f52121a41231e64868f3 (diff) |
9P: Get rid of REQ_STATUS_FLSH
This request state is mostly useless, and properly implementing it
for RDMA would require an extra lock to be taken in handle_recv()
and in rdma_cancel() to avoid this race:
handle_recv() rdma_cancel()
. .
. if req->state == SENT
req->state = RCVD .
. req->state = FLSH
So just get rid of it.
Signed-off-by: Simon Derr <simon.derr@bull.net>
Signed-off-by: Eric Van Hensbergen <ericvh@gmail.com>
Diffstat (limited to 'net')
-rw-r--r-- | net/9p/client.c | 2 | ||||
-rw-r--r-- | net/9p/trans_fd.c | 7 |
2 files changed, 3 insertions, 6 deletions
diff --git a/net/9p/client.c b/net/9p/client.c index 40e558172bbe..0004cbaac4a4 100644 --- a/net/9p/client.c +++ b/net/9p/client.c | |||
@@ -667,7 +667,7 @@ static int p9_client_flush(struct p9_client *c, struct p9_req_t *oldreq) | |||
667 | * if we haven't received a response for oldreq, | 667 | * if we haven't received a response for oldreq, |
668 | * remove it from the list | 668 | * remove it from the list |
669 | */ | 669 | */ |
670 | if (oldreq->status == REQ_STATUS_FLSH) | 670 | if (oldreq->status == REQ_STATUS_SENT) |
671 | if (c->trans_mod->cancelled) | 671 | if (c->trans_mod->cancelled) |
672 | c->trans_mod->cancelled(c, oldreq); | 672 | c->trans_mod->cancelled(c, oldreq); |
673 | 673 | ||
diff --git a/net/9p/trans_fd.c b/net/9p/trans_fd.c index fda4951c869e..9c806428e91a 100644 --- a/net/9p/trans_fd.c +++ b/net/9p/trans_fd.c | |||
@@ -345,8 +345,7 @@ static void p9_read_work(struct work_struct *work) | |||
345 | "mux %p pkt: size: %d bytes tag: %d\n", m, n, tag); | 345 | "mux %p pkt: size: %d bytes tag: %d\n", m, n, tag); |
346 | 346 | ||
347 | m->req = p9_tag_lookup(m->client, tag); | 347 | m->req = p9_tag_lookup(m->client, tag); |
348 | if (!m->req || (m->req->status != REQ_STATUS_SENT && | 348 | if (!m->req || (m->req->status != REQ_STATUS_SENT)) { |
349 | m->req->status != REQ_STATUS_FLSH)) { | ||
350 | p9_debug(P9_DEBUG_ERROR, "Unexpected packet tag %d\n", | 349 | p9_debug(P9_DEBUG_ERROR, "Unexpected packet tag %d\n", |
351 | tag); | 350 | tag); |
352 | err = -EIO; | 351 | err = -EIO; |
@@ -701,9 +700,7 @@ static int p9_fd_cancel(struct p9_client *client, struct p9_req_t *req) | |||
701 | list_del(&req->req_list); | 700 | list_del(&req->req_list); |
702 | req->status = REQ_STATUS_FLSHD; | 701 | req->status = REQ_STATUS_FLSHD; |
703 | ret = 0; | 702 | ret = 0; |
704 | } else if (req->status == REQ_STATUS_SENT) | 703 | } |
705 | req->status = REQ_STATUS_FLSH; | ||
706 | |||
707 | spin_unlock(&client->lock); | 704 | spin_unlock(&client->lock); |
708 | 705 | ||
709 | return ret; | 706 | return ret; |