It turns out there is no need for ovsdb_jsonrcp_session to have access to the remote data structure. Make it opaque as a 'void *' pointer. The pointer value is still useful when selecting ovsdb_jsonrpc_sessions that of the same 'remote'. This change will laster multi-threading patches easier because access to 'remote' does not need be protected.
Signed-off-by: Andy Zhou <az...@ovn.org> --- ovsdb/jsonrpc-server.c | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/ovsdb/jsonrpc-server.c b/ovsdb/jsonrpc-server.c index 56dddc6..660250d 100644 --- a/ovsdb/jsonrpc-server.c +++ b/ovsdb/jsonrpc-server.c @@ -56,14 +56,14 @@ static struct vlog_rate_limit rl = VLOG_RATE_LIMIT_INIT(1, 5); static void ovsdb_jsonrpc_sessions_run(struct ovs_list *); static void ovsdb_jsonrpc_sessions_wait(struct ovs_list *); static void ovsdb_jsonrpc_sessions_close(struct ovs_list *, - const struct ovsdb_jsonrpc_remote *remote); -static void ovsdb_jsonrpc_sessions_reconnect( struct ovs_list *, - const struct ovsdb_jsonrpc_remote *remote); + const void *remote); +static void ovsdb_jsonrpc_sessions_reconnect(struct ovs_list *, + const void *remote); static void ovsdb_jsonrpc_sessions_set_options(struct ovs_list *, - const struct ovsdb_jsonrpc_remote *remote, + const void *remote, const struct ovsdb_jsonrpc_options *); static size_t ovsdb_jsonrpc_sessions_count(const struct ovs_list *, - const struct ovsdb_jsonrpc_remote *remote); + const void *remote); /* Sessions. */ static struct ovsdb_jsonrpc_session *ovsdb_jsonrpc_session_create( @@ -408,7 +408,7 @@ ovsdb_jsonrpc_server_get_memory_usage(const struct ovsdb_jsonrpc_server *svr, struct ovsdb_jsonrpc_session { struct ovs_list node; /* Element in remote's sessions list. */ struct ovsdb_session up; - struct ovsdb_jsonrpc_remote *remote; + const void *remote; /* Triggers. */ struct hmap triggers; /* Hmap of "struct ovsdb_jsonrpc_trigger"s. */ @@ -1375,7 +1375,7 @@ ovsdb_jsonrpc_sessions_wait(struct ovs_list *sessions) static void ovsdb_jsonrpc_sessions_close(struct ovs_list *sessions, - const struct ovsdb_jsonrpc_remote *remote) + const void *remote) { struct ovsdb_jsonrpc_session *s, *next; @@ -1390,7 +1390,7 @@ ovsdb_jsonrpc_sessions_close(struct ovs_list *sessions, * reconnect. */ static void ovsdb_jsonrpc_sessions_reconnect(struct ovs_list *sessions, - const struct ovsdb_jsonrpc_remote *remote) + const void *remote) { struct ovsdb_jsonrpc_session *s, *next; @@ -1406,7 +1406,7 @@ ovsdb_jsonrpc_sessions_reconnect(struct ovs_list *sessions, static size_t ovsdb_jsonrpc_sessions_count(const struct ovs_list *sessions, - const struct ovsdb_jsonrpc_remote *remote) + const void *remote) { struct ovsdb_jsonrpc_session *s = NULL; size_t count = 0; @@ -1426,7 +1426,7 @@ ovsdb_jsonrpc_sessions_count(const struct ovs_list *sessions, * re-open the session.) */ static void ovsdb_jsonrpc_sessions_set_options(struct ovs_list *sessions, - const struct ovsdb_jsonrpc_remote *remote, + const void *remote, const struct ovsdb_jsonrpc_options *options) { struct ovsdb_jsonrpc_session *s; -- 1.9.1 _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev