Lines Matching refs:ncomp

181 #define	QUEUE_INSERT1(hio, name, ncomp)	do {				\  argument
182 mtx_lock(&hio_##name##_list_lock[(ncomp)]); \
183 if (TAILQ_EMPTY(&hio_##name##_list[(ncomp)])) \
184 cv_broadcast(&hio_##name##_list_cond[(ncomp)]); \
185 TAILQ_INSERT_TAIL(&hio_##name##_list[(ncomp)], (hio), \
186 hio_next[(ncomp)]); \
187 hio_##name##_list_size[(ncomp)]++; \
188 mtx_unlock(&hio_##name##_list_lock[(ncomp)]); \
198 #define QUEUE_TAKE1(hio, name, ncomp, timeout) do { \ argument
201 mtx_lock(&hio_##name##_list_lock[(ncomp)]); \
203 while (((hio) = TAILQ_FIRST(&hio_##name##_list[(ncomp)])) == NULL && !_last) { \
204 cv_timedwait(&hio_##name##_list_cond[(ncomp)], \
205 &hio_##name##_list_lock[(ncomp)], (timeout)); \
210 PJDLOG_ASSERT(hio_##name##_list_size[(ncomp)] != 0); \
211 hio_##name##_list_size[(ncomp)]--; \
212 TAILQ_REMOVE(&hio_##name##_list[(ncomp)], (hio), \
213 hio_next[(ncomp)]); \
215 mtx_unlock(&hio_##name##_list_lock[(ncomp)]); \
1135 remote_close(struct hast_resource *res, int ncomp) in remote_close() argument
1138 rw_wlock(&hio_remote_lock[ncomp]); in remote_close()
1143 if (!ISCONNECTED(res, ncomp)) { in remote_close()
1146 rw_unlock(&hio_remote_lock[ncomp]); in remote_close()
1162 rw_unlock(&hio_remote_lock[ncomp]); in remote_close()
1181 unsigned int ncomp; in write_complete() local
1192 ncomp = 1; in write_complete()
1193 rw_rlock(&hio_remote_lock[ncomp]); in write_complete()
1194 if (!ISCONNECTED(res, ncomp)) { in write_complete()
1204 rw_unlock(&hio_remote_lock[ncomp]); in write_complete()
1227 unsigned int ii, ncomp, ncomps; in ggate_recv_thread() local
1273 ncomp = 0; in ggate_recv_thread()
1299 ncomp = 0; in ggate_recv_thread()
1309 ncomp = 1; in ggate_recv_thread()
1370 for (ii = ncomp; ii < ncomps; ii++) in ggate_recv_thread()
1387 unsigned int ncomp, rncomp; in local_send_thread() local
1391 ncomp = 0; in local_send_thread()
1397 QUEUE_TAKE1(hio, send, ncomp, 0); in local_send_thread()
1406 hio->hio_errors[ncomp] = 0; in local_send_thread()
1429 hio->hio_errors[ncomp] = errno; in local_send_thread()
1434 hio->hio_errors[ncomp] = EIO; in local_send_thread()
1439 hio->hio_errors[ncomp] = 0; in local_send_thread()
1451 hio->hio_errors[ncomp] = errno; in local_send_thread()
1456 hio->hio_errors[ncomp] = 0; in local_send_thread()
1469 hio->hio_errors[ncomp] = errno; in local_send_thread()
1474 hio->hio_errors[ncomp] = 0; in local_send_thread()
1502 keepalive_send(struct hast_resource *res, unsigned int ncomp) in keepalive_send() argument
1506 rw_rlock(&hio_remote_lock[ncomp]); in keepalive_send()
1508 if (!ISCONNECTED(res, ncomp)) { in keepalive_send()
1509 rw_unlock(&hio_remote_lock[ncomp]); in keepalive_send()
1519 rw_unlock(&hio_remote_lock[ncomp]); in keepalive_send()
1526 rw_unlock(&hio_remote_lock[ncomp]); in keepalive_send()
1530 remote_close(res, ncomp); in keepalive_send()
1534 rw_unlock(&hio_remote_lock[ncomp]); in keepalive_send()
1550 unsigned int ncomp; in remote_send_thread() local
1557 ncomp = 1; in remote_send_thread()
1562 QUEUE_TAKE1(hio, send, ncomp, HAST_KEEPALIVE); in remote_send_thread()
1566 keepalive_send(res, ncomp); in remote_send_thread()
1609 hio->hio_errors[ncomp] = nv_error(nv); in remote_send_thread()
1622 rw_rlock(&hio_remote_lock[ncomp]); in remote_send_thread()
1623 if (!ISCONNECTED(res, ncomp)) { in remote_send_thread()
1624 rw_unlock(&hio_remote_lock[ncomp]); in remote_send_thread()
1625 hio->hio_errors[ncomp] = ENOTCONN; in remote_send_thread()
1636 mtx_lock(&hio_recv_list_lock[ncomp]); in remote_send_thread()
1637 wakeup = TAILQ_EMPTY(&hio_recv_list[ncomp]); in remote_send_thread()
1638 TAILQ_INSERT_TAIL(&hio_recv_list[ncomp], hio, hio_next[ncomp]); in remote_send_thread()
1639 hio_recv_list_size[ncomp]++; in remote_send_thread()
1640 mtx_unlock(&hio_recv_list_lock[ncomp]); in remote_send_thread()
1643 hio->hio_errors[ncomp] = errno; in remote_send_thread()
1644 rw_unlock(&hio_remote_lock[ncomp]); in remote_send_thread()
1649 strerror(hio->hio_errors[ncomp])); in remote_send_thread()
1650 remote_close(res, ncomp); in remote_send_thread()
1652 rw_unlock(&hio_remote_lock[ncomp]); in remote_send_thread()
1656 cv_signal(&hio_recv_list_cond[ncomp]); in remote_send_thread()
1706 unsigned int ncomp; in remote_recv_thread() local
1712 ncomp = 1; in remote_recv_thread()
1716 mtx_lock(&hio_recv_list_lock[ncomp]); in remote_recv_thread()
1717 while (TAILQ_EMPTY(&hio_recv_list[ncomp])) { in remote_recv_thread()
1719 cv_wait(&hio_recv_list_cond[ncomp], in remote_recv_thread()
1720 &hio_recv_list_lock[ncomp]); in remote_recv_thread()
1722 mtx_unlock(&hio_recv_list_lock[ncomp]); in remote_recv_thread()
1726 rw_rlock(&hio_remote_lock[ncomp]); in remote_recv_thread()
1727 if (!ISCONNECTED(res, ncomp)) { in remote_recv_thread()
1728 rw_unlock(&hio_remote_lock[ncomp]); in remote_recv_thread()
1733 mtx_lock(&hio_recv_list_lock[ncomp]); in remote_recv_thread()
1734 hio = TAILQ_FIRST(&hio_recv_list[ncomp]); in remote_recv_thread()
1736 TAILQ_REMOVE(&hio_recv_list[ncomp], hio, in remote_recv_thread()
1737 hio_next[ncomp]); in remote_recv_thread()
1738 hio_recv_list_size[ncomp]--; in remote_recv_thread()
1739 mtx_unlock(&hio_recv_list_lock[ncomp]); in remote_recv_thread()
1740 hio->hio_errors[ncomp] = ENOTCONN; in remote_recv_thread()
1746 rw_unlock(&hio_remote_lock[ncomp]); in remote_recv_thread()
1747 remote_close(res, ncomp); in remote_recv_thread()
1750 rw_unlock(&hio_remote_lock[ncomp]); in remote_recv_thread()
1758 mtx_lock(&hio_recv_list_lock[ncomp]); in remote_recv_thread()
1759 TAILQ_FOREACH(hio, &hio_recv_list[ncomp], hio_next[ncomp]) { in remote_recv_thread()
1761 TAILQ_REMOVE(&hio_recv_list[ncomp], hio, in remote_recv_thread()
1762 hio_next[ncomp]); in remote_recv_thread()
1763 hio_recv_list_size[ncomp]--; in remote_recv_thread()
1767 mtx_unlock(&hio_recv_list_lock[ncomp]); in remote_recv_thread()
1778 hio->hio_errors[ncomp] = error; in remote_recv_thread()
1786 rw_rlock(&hio_remote_lock[ncomp]); in remote_recv_thread()
1787 if (!ISCONNECTED(res, ncomp)) { in remote_recv_thread()
1788 rw_unlock(&hio_remote_lock[ncomp]); in remote_recv_thread()
1794 hio->hio_errors[ncomp] = errno; in remote_recv_thread()
1797 rw_unlock(&hio_remote_lock[ncomp]); in remote_recv_thread()
1799 remote_close(res, ncomp); in remote_recv_thread()
1802 rw_unlock(&hio_remote_lock[ncomp]); in remote_recv_thread()
1811 hio->hio_errors[ncomp] = 0; in remote_recv_thread()
1817 hio->hio_errors[ncomp] != 0); in remote_recv_thread()
1824 if (hio->hio_errors[ncomp] == 0) { in remote_recv_thread()
1828 mtx_lock(&hio_recv_list_lock[ncomp]); in remote_recv_thread()
1829 TAILQ_INSERT_TAIL(&hio_recv_list[ncomp], in remote_recv_thread()
1830 hio, hio_next[ncomp]); in remote_recv_thread()
1831 hio_recv_list_size[ncomp]++; in remote_recv_thread()
1832 mtx_unlock(&hio_recv_list_lock[ncomp]); in remote_recv_thread()
1960 unsigned int ii, ncomp, ncomps; in sync_thread() local
2026 ncomp = 1; in sync_thread()
2027 rw_rlock(&hio_remote_lock[ncomp]); in sync_thread()
2028 if (ISCONNECTED(res, ncomp)) { in sync_thread()
2058 rw_unlock(&hio_remote_lock[ncomp]); in sync_thread()
2119 ncomp = 0; in sync_thread()
2127 ncomp = 1; in sync_thread()
2131 QUEUE_INSERT1(hio, send, ncomp); in sync_thread()
2141 if (hio->hio_errors[ncomp] != 0) { in sync_thread()
2143 strerror(hio->hio_errors[ncomp])); in sync_thread()
2166 ncomp = 1; in sync_thread()
2174 ncomp = 0; in sync_thread()
2181 QUEUE_INSERT1(hio, send, ncomp); in sync_thread()
2191 if (hio->hio_errors[ncomp] != 0) { in sync_thread()
2193 strerror(hio->hio_errors[ncomp])); in sync_thread()
2341 guard_one(struct hast_resource *res, unsigned int ncomp) in guard_one() argument
2345 if (!ISREMOTE(ncomp)) in guard_one()
2348 rw_rlock(&hio_remote_lock[ncomp]); in guard_one()
2351 rw_unlock(&hio_remote_lock[ncomp]); in guard_one()
2355 if (ISCONNECTED(res, ncomp)) { in guard_one()
2358 rw_unlock(&hio_remote_lock[ncomp]); in guard_one()
2370 rw_unlock(&hio_remote_lock[ncomp]); in guard_one()
2375 rw_wlock(&hio_remote_lock[ncomp]); in guard_one()
2381 rw_unlock(&hio_remote_lock[ncomp]); in guard_one()