9P: Fix fcall allocation for rdma
authorSimon Derr <simon.derr@bull.net>
Fri, 21 Jun 2013 13:32:34 +0000 (15:32 +0200)
committerEric Van Hensbergen <ericvh@gmail.com>
Mon, 8 Jul 2013 03:02:26 +0000 (22:02 -0500)
commitea071aa1365eaf8a79b33bd8699cb0811dcddf34
treec948ded09d3e1b10bf75abde352b50b13f2581a2
parentd9a738597faf7cd2edeec82ce8fd81969fed8390
9P: Fix fcall allocation for rdma

The current code assumes that when a request in the request array
does have a tc, it also has a rc.

This is normally true, but not always : when using RDMA, req->rc
will temporarily be set to NULL after the request has been sent.
That is usually OK though, as when the reply arrives, req->rc will be
reassigned to a sane value before the request is recycled.

But there is a catch : if the request is flushed, the reply will never
arrive, and req->rc will be NULL, but not req->tc.

This patch fixes p9_tag_alloc to take this into account.

Signed-off-by: Simon Derr <simon.derr@bull.net>
Signed-off-by: Eric Van Hensbergen <ericvh@gmail.com>
net/9p/client.c