From: Yu Watanabe Date: Fri, 11 Mar 2022 01:38:59 +0000 (+0900) Subject: network: tc: assign netlink handlers into Request object X-Git-Tag: v251-rc1~164^2~10 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=f1eef3675c59278a111c1d5f9a9b418d9a02025e;p=thirdparty%2Fsystemd.git network: tc: assign netlink handlers into Request object This should not change any behavior, as req->netlink_handler is always qdisc_handler or tclass_handler. This is just a preparation for a later commit which introduces request_call_netlink_async(). --- diff --git a/src/network/networkd-queue.c b/src/network/networkd-queue.c index 5f420c08c37..b30d0532d12 100644 --- a/src/network/networkd-queue.c +++ b/src/network/networkd-queue.c @@ -313,9 +313,7 @@ int link_queue_request( REQUEST_TYPE_DHCP4_CLIENT, REQUEST_TYPE_DHCP6_CLIENT, REQUEST_TYPE_NDISC, - REQUEST_TYPE_RADV, - REQUEST_TYPE_TC_QDISC, - REQUEST_TYPE_TC_CLASS) || + REQUEST_TYPE_RADV) || netlink_handler); req = new(Request, 1); diff --git a/src/network/tc/qdisc.c b/src/network/tc/qdisc.c index 7b2dacbd5ca..9220299c953 100644 --- a/src/network/tc/qdisc.c +++ b/src/network/tc/qdisc.c @@ -319,7 +319,7 @@ static int qdisc_handler(sd_netlink *rtnl, sd_netlink_message *m, Link *link) { return 1; } -static int qdisc_configure(QDisc *qdisc, Link *link) { +static int qdisc_configure(QDisc *qdisc, Link *link, Request *req) { _cleanup_(sd_netlink_message_unrefp) sd_netlink_message *m = NULL; int r; @@ -328,6 +328,7 @@ static int qdisc_configure(QDisc *qdisc, Link *link) { assert(link->manager); assert(link->manager->rtnl); assert(link->ifindex > 0); + assert(req); log_qdisc_debug(qdisc, link, "Configuring"); @@ -346,7 +347,7 @@ static int qdisc_configure(QDisc *qdisc, Link *link) { return r; } - r = netlink_call_async(link->manager->rtnl, NULL, m, qdisc_handler, link_netlink_destroy_callback, link); + r = netlink_call_async(link->manager->rtnl, NULL, m, req->netlink_handler, link_netlink_destroy_callback, link); if (r < 0) return r; @@ -379,7 +380,7 @@ int request_process_qdisc(Request *req) { if (!qdisc_is_ready_to_configure(qdisc, link)) return 0; - r = qdisc_configure(qdisc, link); + r = qdisc_configure(qdisc, link, req); if (r < 0) return log_link_warning_errno(link, r, "Failed to configure QDisc: %m"); @@ -411,7 +412,7 @@ int link_request_qdisc(Link *link, QDisc *qdisc) { log_qdisc_debug(existing, link, "Requesting"); r = link_queue_request(link, REQUEST_TYPE_TC_QDISC, existing, false, - &link->tc_messages, NULL, NULL); + &link->tc_messages, qdisc_handler, NULL); if (r < 0) return log_link_warning_errno(link, r, "Failed to request QDisc: %m"); if (r == 0) diff --git a/src/network/tc/tclass.c b/src/network/tc/tclass.c index e01e151d8f2..937727796ea 100644 --- a/src/network/tc/tclass.c +++ b/src/network/tc/tclass.c @@ -281,7 +281,7 @@ static int tclass_handler(sd_netlink *rtnl, sd_netlink_message *m, Link *link) { return 1; } -static int tclass_configure(TClass *tclass, Link *link) { +static int tclass_configure(TClass *tclass, Link *link, Request *req) { _cleanup_(sd_netlink_message_unrefp) sd_netlink_message *m = NULL; int r; @@ -290,6 +290,7 @@ static int tclass_configure(TClass *tclass, Link *link) { assert(link->manager); assert(link->manager->rtnl); assert(link->ifindex > 0); + assert(req); log_tclass_debug(tclass, link, "Configuring"); @@ -308,7 +309,7 @@ static int tclass_configure(TClass *tclass, Link *link) { return r; } - r = netlink_call_async(link->manager->rtnl, NULL, m, tclass_handler, link_netlink_destroy_callback, link); + r = netlink_call_async(link->manager->rtnl, NULL, m, req->netlink_handler, link_netlink_destroy_callback, link); if (r < 0) return r; @@ -338,7 +339,7 @@ int request_process_tclass(Request *req) { if (!tclass_is_ready_to_configure(tclass, link)) return 0; - r = tclass_configure(tclass, link); + r = tclass_configure(tclass, link, req); if (r < 0) return log_link_warning_errno(link, r, "Failed to configure TClass: %m"); @@ -370,7 +371,7 @@ int link_request_tclass(Link *link, TClass *tclass) { log_tclass_debug(existing, link, "Requesting"); r = link_queue_request(link, REQUEST_TYPE_TC_CLASS, existing, false, - &link->tc_messages, NULL, NULL); + &link->tc_messages, tclass_handler, NULL); if (r < 0) return log_link_warning_errno(link, r, "Failed to request TClass: %m"); if (r == 0)