summaryrefslogtreecommitdiffstats
path: root/net/tipc/bearer.c
diff options
context:
space:
mode:
authorYing Xue2018-02-14 06:38:00 +0100
committerDavid S. Miller2018-02-14 20:46:32 +0100
commit45cf7edfbc07b2208d7b4a79d4a36aeddf16aefd (patch)
tree7fe61491539964bf0c4e230c0a2512de34000ad0 /net/tipc/bearer.c
parenttipc: Introduce __tipc_nl_bearer_disable (diff)
downloadkernel-qcow2-linux-45cf7edfbc07b2208d7b4a79d4a36aeddf16aefd.tar.gz
kernel-qcow2-linux-45cf7edfbc07b2208d7b4a79d4a36aeddf16aefd.tar.xz
kernel-qcow2-linux-45cf7edfbc07b2208d7b4a79d4a36aeddf16aefd.zip
tipc: Introduce __tipc_nl_bearer_enable
Introduce __tipc_nl_bearer_enable() which doesn't hold RTNL lock. Signed-off-by: Ying Xue <ying.xue@windriver.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/tipc/bearer.c')
-rw-r--r--net/tipc/bearer.c17
1 files changed, 10 insertions, 7 deletions
diff --git a/net/tipc/bearer.c b/net/tipc/bearer.c
index 61b6625f93a4..faf8fa033740 100644
--- a/net/tipc/bearer.c
+++ b/net/tipc/bearer.c
@@ -855,7 +855,7 @@ int tipc_nl_bearer_disable(struct sk_buff *skb, struct genl_info *info)
return err;
}
-int tipc_nl_bearer_enable(struct sk_buff *skb, struct genl_info *info)
+int __tipc_nl_bearer_enable(struct sk_buff *skb, struct genl_info *info)
{
int err;
char *bearer;
@@ -897,15 +897,18 @@ int tipc_nl_bearer_enable(struct sk_buff *skb, struct genl_info *info)
prio = nla_get_u32(props[TIPC_NLA_PROP_PRIO]);
}
+ return tipc_enable_bearer(net, bearer, domain, prio, attrs);
+}
+
+int tipc_nl_bearer_enable(struct sk_buff *skb, struct genl_info *info)
+{
+ int err;
+
rtnl_lock();
- err = tipc_enable_bearer(net, bearer, domain, prio, attrs);
- if (err) {
- rtnl_unlock();
- return err;
- }
+ err = __tipc_nl_bearer_enable(skb, info);
rtnl_unlock();
- return 0;
+ return err;
}
int tipc_nl_bearer_add(struct sk_buff *skb, struct genl_info *info)