mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-28 10:41:38 -04:00
net/9p: This patch implements TLERROR/RLERROR on the 9P client.
Signed-off-by: Arun R Bharadwaj <[email protected]> Signed-off-by: Venkateswararao Jujjuri <[email protected]> Signed-off-by: Eric Van Hensbergen <[email protected]>
This commit is contained in:
parent
7c7298cffc
commit
4f7ebe8072
2 changed files with 31 additions and 16 deletions
|
|
@ -450,32 +450,43 @@ static int p9_check_errors(struct p9_client *c, struct p9_req_t *req)
|
|||
return err;
|
||||
}
|
||||
|
||||
if (type == P9_RERROR) {
|
||||
if (type == P9_RERROR || type == P9_RLERROR) {
|
||||
int ecode;
|
||||
char *ename;
|
||||
|
||||
err = p9pdu_readf(req->rc, c->proto_version, "s?d",
|
||||
&ename, &ecode);
|
||||
if (err) {
|
||||
P9_DPRINTK(P9_DEBUG_ERROR, "couldn't parse error%d\n",
|
||||
err);
|
||||
return err;
|
||||
}
|
||||
if (!p9_is_proto_dotl(c)) {
|
||||
char *ename;
|
||||
|
||||
if (p9_is_proto_dotu(c) ||
|
||||
p9_is_proto_dotl(c))
|
||||
err = p9pdu_readf(req->rc, c->proto_version, "s?d",
|
||||
&ename, &ecode);
|
||||
if (err)
|
||||
goto out_err;
|
||||
|
||||
if (p9_is_proto_dotu(c))
|
||||
err = -ecode;
|
||||
|
||||
if (!err || !IS_ERR_VALUE(err)) {
|
||||
err = p9_errstr2errno(ename, strlen(ename));
|
||||
|
||||
P9_DPRINTK(P9_DEBUG_9P, "<<< RERROR (%d) %s\n", -ecode, ename);
|
||||
|
||||
kfree(ename);
|
||||
}
|
||||
} else {
|
||||
err = p9pdu_readf(req->rc, c->proto_version, "d", &ecode);
|
||||
err = -ecode;
|
||||
|
||||
if (!err || !IS_ERR_VALUE(err))
|
||||
err = p9_errstr2errno(ename, strlen(ename));
|
||||
P9_DPRINTK(P9_DEBUG_9P, "<<< RLERROR (%d)\n", -ecode);
|
||||
}
|
||||
|
||||
P9_DPRINTK(P9_DEBUG_9P, "<<< RERROR (%d) %s\n", -ecode, ename);
|
||||
|
||||
kfree(ename);
|
||||
} else
|
||||
err = 0;
|
||||
|
||||
return err;
|
||||
|
||||
out_err:
|
||||
P9_DPRINTK(P9_DEBUG_ERROR, "couldn't parse error%d\n", err);
|
||||
|
||||
return err;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
Loading…
Reference in a new issue