inet_diag: return classid for all socket types
In commit1ec17dbd90
("inet_diag: fix reporting cgroup classid and fallback to priority") croup classid reporting was fixed. But this works only for TCP sockets because for other socket types icsk parameter can be NULL and classid code path is skipped. This change moves classid handling to inet_diag_msg_attrs_fill() function. Also inet_diag_msg_attrs_size() helper was added and addends in nlmsg_new() were reordered to save order from inet_sk_diag_fill(). Fixes:1ec17dbd90
("inet_diag: fix reporting cgroup classid and fallback to priority") Signed-off-by: Dmitry Yakunin <zeil@yandex-team.ru> Reviewed-by: Konstantin Khlebnikov <khlebnikov@yandex-team.ru> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:

committed by
David S. Miller

parent
b723bd9339
commit
83f73c5bb7
@@ -237,15 +237,11 @@ static size_t inet_assoc_attr_size(struct sctp_association *asoc)
|
||||
addrcnt++;
|
||||
|
||||
return nla_total_size(sizeof(struct sctp_info))
|
||||
+ nla_total_size(1) /* INET_DIAG_SHUTDOWN */
|
||||
+ nla_total_size(1) /* INET_DIAG_TOS */
|
||||
+ nla_total_size(1) /* INET_DIAG_TCLASS */
|
||||
+ nla_total_size(4) /* INET_DIAG_MARK */
|
||||
+ nla_total_size(4) /* INET_DIAG_CLASS_ID */
|
||||
+ nla_total_size(addrlen * asoc->peer.transport_count)
|
||||
+ nla_total_size(addrlen * addrcnt)
|
||||
+ nla_total_size(sizeof(struct inet_diag_meminfo))
|
||||
+ nla_total_size(sizeof(struct inet_diag_msg))
|
||||
+ inet_diag_msg_attrs_size()
|
||||
+ nla_total_size(sizeof(struct inet_diag_meminfo))
|
||||
+ 64;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user