summaryrefslogtreecommitdiffstats
path: root/sbin/hastd
diff options
context:
space:
mode:
Diffstat (limited to 'sbin/hastd')
-rw-r--r--sbin/hastd/primary.c48
1 files changed, 24 insertions, 24 deletions
diff --git a/sbin/hastd/primary.c b/sbin/hastd/primary.c
index d1177a1..49c56ae 100644
--- a/sbin/hastd/primary.c
+++ b/sbin/hastd/primary.c
@@ -1319,18 +1319,18 @@ local_send_thread(void *arg)
}
break;
}
- if (refcount_release(&hio->hio_countdown)) {
- if (ISSYNCREQ(hio)) {
- mtx_lock(&sync_lock);
- SYNCREQDONE(hio);
- mtx_unlock(&sync_lock);
- cv_signal(&sync_cond);
- } else {
- pjdlog_debug(2,
- "local_send: (%p) Moving request to the done queue.",
- hio);
- QUEUE_INSERT2(hio, done);
- }
+ if (!refcount_release(&hio->hio_countdown))
+ continue;
+ if (ISSYNCREQ(hio)) {
+ mtx_lock(&sync_lock);
+ SYNCREQDONE(hio);
+ mtx_unlock(&sync_lock);
+ cv_signal(&sync_cond);
+ } else {
+ pjdlog_debug(2,
+ "local_send: (%p) Moving request to the done queue.",
+ hio);
+ QUEUE_INSERT2(hio, done);
}
}
/* NOTREACHED */
@@ -1640,18 +1640,18 @@ remote_recv_thread(void *arg)
hio->hio_errors[ncomp] = 0;
nv_free(nv);
done_queue:
- if (refcount_release(&hio->hio_countdown)) {
- if (ISSYNCREQ(hio)) {
- mtx_lock(&sync_lock);
- SYNCREQDONE(hio);
- mtx_unlock(&sync_lock);
- cv_signal(&sync_cond);
- } else {
- pjdlog_debug(2,
- "remote_recv: (%p) Moving request to the done queue.",
- hio);
- QUEUE_INSERT2(hio, done);
- }
+ if (!refcount_release(&hio->hio_countdown))
+ continue;
+ if (ISSYNCREQ(hio)) {
+ mtx_lock(&sync_lock);
+ SYNCREQDONE(hio);
+ mtx_unlock(&sync_lock);
+ cv_signal(&sync_cond);
+ } else {
+ pjdlog_debug(2,
+ "remote_recv: (%p) Moving request to the done queue.",
+ hio);
+ QUEUE_INSERT2(hio, done);
}
}
/* NOTREACHED */
OpenPOWER on IntegriCloud