}
static unsigned int
-ksocknal_get_conn_count_by_type(struct ksock_conn_cb *conn_cb,
- int type)
-{
- unsigned int count = 0;
-
- switch (type) {
- case SOCKLND_CONN_CONTROL:
- count = conn_cb->ksnr_ctrl_conn_count;
- break;
- case SOCKLND_CONN_BULK_IN:
- count = conn_cb->ksnr_blki_conn_count;
- break;
- case SOCKLND_CONN_BULK_OUT:
- count = conn_cb->ksnr_blko_conn_count;
- break;
- case SOCKLND_CONN_ANY:
- count = conn_cb->ksnr_conn_count;
- break;
- default:
- LBUG();
- break;
- }
-
- return count;
-}
-
-static unsigned int
ksocknal_get_conns_per_peer(struct ksock_peer_ni *peer_ni)
{
struct lnet_ni *ni = peer_ni->ksnp_ni;
}
}
+unsigned int
+ksocknal_get_conn_count_by_type(struct ksock_conn_cb *conn_cb,
+ int type)
+{
+ unsigned int count = 0;
+
+ switch (type) {
+ case SOCKLND_CONN_CONTROL:
+ count = conn_cb->ksnr_ctrl_conn_count;
+ break;
+ case SOCKLND_CONN_BULK_IN:
+ count = conn_cb->ksnr_blki_conn_count;
+ break;
+ case SOCKLND_CONN_BULK_OUT:
+ count = conn_cb->ksnr_blko_conn_count;
+ break;
+ case SOCKLND_CONN_ANY:
+ count = conn_cb->ksnr_conn_count;
+ break;
+ default:
+ LBUG();
+ break;
+ }
+
+ return count;
+}
+
int
ksocknal_add_peer(struct lnet_ni *ni, struct lnet_processid *id,
struct sockaddr *addr)
unsigned int offset, unsigned int mlen, unsigned int rlen);
int ksocknal_accept(struct lnet_ni *ni, struct socket *sock);
+unsigned int ksocknal_get_conn_count_by_type(struct ksock_conn_cb *conn_cb,
+ int type);
int ksocknal_add_peer(struct lnet_ni *ni, struct lnet_processid *id,
struct sockaddr *addr);
struct ksock_peer_ni *ksocknal_find_peer_locked(struct lnet_ni *ni,
goto failed;
}
- if (rc == EALREADY && conn_cb->ksnr_conn_count > 0)
+ if (rc == EALREADY &&
+ ksocknal_get_conn_count_by_type(conn_cb, type) > 0)
conn_cb->ksnr_busy_retry_count += 1;
else
conn_cb->ksnr_busy_retry_count = 0;