diff mbox series

[v3] nbd: automatically load module on genl access

Message ID 20230713-b4-nbd-genl-v3-1-226cbddba04b@weissschuh.net (mailing list archive)
State New, archived
Headers show
Series [v3] nbd: automatically load module on genl access | expand

Commit Message

Thomas Weißschuh July 13, 2023, 7:29 p.m. UTC
Add a module alias to nbd.ko that allows the generic netlink core to
automatically load the module when netlink messages for nbd are
received.

This frees the user from manually having to load the module before using
nbd functionality via netlink.
If the system policy allows it this can even be used to load the nbd
module from containers which would otherwise not have access to the
necessary module files to do a normal "modprobe nbd".

For example this avoids the following error when using nbd-client:

$ nbd-client localhost 10809 /dev/nbd0
...
Error: Couldn't resolve the nbd netlink family, make sure the nbd module is loaded and your nbd driver supports the netlink interface.

Signed-off-by: Thomas Weißschuh <linux@weissschuh.net>
---
Changes in v3:
- Resend to gain some reviews
- Expand commit message
- Drop additional reviewers again
- Cc Christoph as reviewer, as he recently reviewed NBD stuff
- Link to v2: https://lore.kernel.org/r/20230223-b4-nbd-genl-v2-1-64585d9ce4b9@weissschuh.net

Changes in v2:
- Expand Cc list to get some reviews
- Add concrete commit example to commit message
- Link to v1: https://lore.kernel.org/lkml/20221110052438.2188-1-linux@weissschuh.net/
---
 drivers/block/nbd.c | 1 +
 1 file changed, 1 insertion(+)


---
base-commit: eb26cbb1a754ccde5d4d74527dad5ba051808fad
change-id: 20230223-b4-nbd-genl-3a74ca638686

Best regards,

Comments

Josef Bacik July 13, 2023, 8:33 p.m. UTC | #1
On Thu, Jul 13, 2023 at 09:29:35PM +0200, Thomas Weißschuh wrote:
> Add a module alias to nbd.ko that allows the generic netlink core to
> automatically load the module when netlink messages for nbd are
> received.
> 
> This frees the user from manually having to load the module before using
> nbd functionality via netlink.
> If the system policy allows it this can even be used to load the nbd
> module from containers which would otherwise not have access to the
> necessary module files to do a normal "modprobe nbd".
> 
> For example this avoids the following error when using nbd-client:
> 
> $ nbd-client localhost 10809 /dev/nbd0
> ...
> Error: Couldn't resolve the nbd netlink family, make sure the nbd module is loaded and your nbd driver supports the netlink interface.
> 
> Signed-off-by: Thomas Weißschuh <linux@weissschuh.net>

Reviewed-by: Josef Bacik <josef@toxicpadna.com>

Thanks,

Josef
Jens Axboe July 13, 2023, 8:37 p.m. UTC | #2
On Thu, 13 Jul 2023 21:29:35 +0200, Thomas Weißschuh wrote:
> Add a module alias to nbd.ko that allows the generic netlink core to
> automatically load the module when netlink messages for nbd are
> received.
> 
> This frees the user from manually having to load the module before using
> nbd functionality via netlink.
> If the system policy allows it this can even be used to load the nbd
> module from containers which would otherwise not have access to the
> necessary module files to do a normal "modprobe nbd".
> 
> [...]

Applied, thanks!

[1/1] nbd: automatically load module on genl access
      commit: 82e37f43c37845b69955a0dfa5e0d1a2a830bdb7

Best regards,
diff mbox series

Patch

diff --git a/drivers/block/nbd.c b/drivers/block/nbd.c
index 8576d696c7a2..a346dbd73543 100644
--- a/drivers/block/nbd.c
+++ b/drivers/block/nbd.c
@@ -2336,6 +2336,7 @@  static struct genl_family nbd_genl_family __ro_after_init = {
 	.mcgrps		= nbd_mcast_grps,
 	.n_mcgrps	= ARRAY_SIZE(nbd_mcast_grps),
 };
+MODULE_ALIAS_GENL_FAMILY(NBD_GENL_FAMILY_NAME);
 
 static int populate_nbd_status(struct nbd_device *nbd, struct sk_buff *reply)
 {