From 673d62cdaac6ffbce980a349d3174b3929ceb9e5 Mon Sep 17 00:00:00 2001 From: Eric Van Hensbergen Date: Mon, 13 Oct 2008 18:45:22 -0500 Subject: 9p: apply common request code to trans_fd Apply the now common p9_req_t structure to the fd transport. Signed-off-by: Eric Van Hensbergen --- net/9p/client.c | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) (limited to 'net/9p/client.c') diff --git a/net/9p/client.c b/net/9p/client.c index 867031934f7..f2d07ef9e6a 100644 --- a/net/9p/client.c +++ b/net/9p/client.c @@ -268,6 +268,27 @@ static void p9_tag_cleanup(struct p9_client *c) c->max_tag = 0; } +/** + * p9_free_req - free a request and clean-up as necessary + * c: client state + * r: request to release + * + */ + +void p9_free_req(struct p9_client *c, struct p9_req_t *r) +{ + r->flush_tag = P9_NOTAG; + r->status = REQ_STATUS_IDLE; + if (r->tc->tag != P9_NOTAG && p9_idpool_check(r->tc->tag, c->tagpool)) + p9_idpool_put(r->tc->tag, c->tagpool); + + /* if this was a flush request we have to free response fcall */ + if (r->tc->id == P9_TFLUSH) { + kfree(r->tc); + kfree(r->rc); + } +} + static struct p9_fid *p9_fid_create(struct p9_client *clnt) { int err; -- cgit v1.2.3