|
@@ -769,7 +769,7 @@ p9_client_rpc(struct p9_client *c, int8_t type, const char *fmt, ...)
|
|
|
if (err < 0) {
|
|
|
if (err != -ERESTARTSYS && err != -EFAULT)
|
|
|
c->status = Disconnected;
|
|
|
- goto reterr;
|
|
|
+ goto recalc_sigpending;
|
|
|
}
|
|
|
again:
|
|
|
/* Wait for the response */
|
|
@@ -804,6 +804,7 @@ again:
|
|
|
if (req->status == REQ_STATUS_RCVD)
|
|
|
err = 0;
|
|
|
}
|
|
|
+recalc_sigpending:
|
|
|
if (sigpending) {
|
|
|
spin_lock_irqsave(¤t->sighand->siglock, flags);
|
|
|
recalc_sigpending();
|
|
@@ -867,7 +868,7 @@ static struct p9_req_t *p9_client_zc_rpc(struct p9_client *c, int8_t type,
|
|
|
if (err == -EIO)
|
|
|
c->status = Disconnected;
|
|
|
if (err != -ERESTARTSYS)
|
|
|
- goto reterr;
|
|
|
+ goto recalc_sigpending;
|
|
|
}
|
|
|
if (req->status == REQ_STATUS_ERROR) {
|
|
|
p9_debug(P9_DEBUG_ERROR, "req_status error %d\n", req->t_err);
|
|
@@ -885,6 +886,7 @@ static struct p9_req_t *p9_client_zc_rpc(struct p9_client *c, int8_t type,
|
|
|
if (req->status == REQ_STATUS_RCVD)
|
|
|
err = 0;
|
|
|
}
|
|
|
+recalc_sigpending:
|
|
|
if (sigpending) {
|
|
|
spin_lock_irqsave(¤t->sighand->siglock, flags);
|
|
|
recalc_sigpending();
|