target/user: Make sure netlink would reach all network namespaces
authorSheng Yang <sheng@yasker.org>
Thu, 14 Jan 2016 01:26:13 +0000 (17:26 -0800)
committerNicholas Bellinger <nab@linux-iscsi.org>
Wed, 20 Jan 2016 09:38:38 +0000 (01:38 -0800)
The current code only allow netlink to reach the initial network namespace,
which caused trouble for any client running inside container.

This patch would make sure TCMU netlink would work for all network
namespaces.

Signed-off-by: Sheng Yang <sheng@yasker.org>
Acked-by: Andy Grover <agrover@redhat.com>
Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
drivers/target/target_core_user.c

index da187e6..a84cd40 100644 (file)
@@ -152,6 +152,7 @@ static struct genl_family tcmu_genl_family = {
        .maxattr = TCMU_ATTR_MAX,
        .mcgrps = tcmu_mcgrps,
        .n_mcgrps = ARRAY_SIZE(tcmu_mcgrps),
+       .netnsok = true,
 };
 
 static struct tcmu_cmd *tcmu_alloc_cmd(struct se_cmd *se_cmd)
@@ -840,7 +841,7 @@ static int tcmu_netlink_event(enum tcmu_genl_cmd cmd, const char *name, int mino
 
        genlmsg_end(skb, msg_header);
 
-       ret = genlmsg_multicast(&tcmu_genl_family, skb, 0,
+       ret = genlmsg_multicast_allns(&tcmu_genl_family, skb, 0,
                                TCMU_MCGRP_CONFIG, GFP_KERNEL);
 
        /* We don't care if no one is listening */