genetlink: introduce per-sock family private storage
authorJiri Pirko <jiri@nvidia.com>
Sat, 16 Dec 2023 12:29:57 +0000 (13:29 +0100)
committerPaolo Abeni <pabeni@redhat.com>
Tue, 19 Dec 2023 14:31:40 +0000 (15:31 +0100)
commita731132424adeda4d5383ef61afae2e804063fb7
tree932e63200b540fe31f2dfcd47bdf4e39943304f2
parent5648de0b1f2b68bffce9bdd49a276607b9a3e3d4
genetlink: introduce per-sock family private storage

Introduce an xarray for Generic netlink family to store per-socket
private. Initialize this xarray only if family uses per-socket privs.

Introduce genl_sk_priv_get() to get the socket priv pointer for a family
and initialize it in case it does not exist.
Introduce __genl_sk_priv_get() to obtain socket priv pointer for a
family under RCU read lock.

Allow family to specify the priv size, init() and destroy() callbacks.

Signed-off-by: Jiri Pirko <jiri@nvidia.com>
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
include/net/genetlink.h
net/netlink/genetlink.c