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 da187e635ea3f485ac8b69e6f414fa69313095ca..a84cd40ab964f51e3410fb8420ca53efa872a696 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 */