Skip to content

Commit

Permalink
9p: forgetting to cancel request on interrupted zero-copy RPC
Browse files Browse the repository at this point in the history
If we'd already sent a request and decide to abort it, we *must*
issue TFLUSH properly and not just blindly reuse the tag, or
we'll get seriously screwed when response eventually arrives
and we confuse it for response to later request that had reused
the same tag.

Cc: stable@vger.kernel.org # v3.2 and later
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
  • Loading branch information
Al Viro committed Jul 4, 2015
1 parent 43c3dd0 commit a84b69c
Showing 1 changed file with 2 additions and 1 deletion.
3 changes: 2 additions & 1 deletion net/9p/client.c
Original file line number Diff line number Diff line change
Expand Up @@ -843,7 +843,8 @@ static struct p9_req_t *p9_client_zc_rpc(struct p9_client *c, int8_t type,
if (err < 0) {
if (err == -EIO)
c->status = Disconnected;
goto reterr;
if (err != -ERESTARTSYS)
goto reterr;
}
if (req->status == REQ_STATUS_ERROR) {
p9_debug(P9_DEBUG_ERROR, "req_status error %d\n", req->t_err);
Expand Down

0 comments on commit a84b69c

Please sign in to comment.