tipc: simplify resetting and disabling of bearers
Since commit 4b475e3f2f8e4e241de101c8240f1d74d0470494 ("tipc: eliminate delayed link deletion at link failover") the extra boolean parameter "shutting_down" is not any longer needed for the functions bearer_disable() and tipc_link_delete_list(). Furhermore, the function tipc_link_reset_links(), called from bearer_reset() is now unnecessary. We can just as well delete all the links, as we do in bearer_disable(), and start over with creating new links. This commit introduces those changes. Reviewed-by: Erik Hugne <erik.hugne@ericsson.com> Reviewed-by: Ying Xue <ying.xue@windriver.com> Signed-off-by: Jon Maloy <jon.maloy@ericsson.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:

committed by
David S. Miller

parent
c16ead798e
commit
b1c29f6b10
@@ -71,8 +71,7 @@ static const struct nla_policy tipc_nl_media_policy[TIPC_NLA_MEDIA_MAX + 1] = {
|
||||
[TIPC_NLA_MEDIA_PROP] = { .type = NLA_NESTED }
|
||||
};
|
||||
|
||||
static void bearer_disable(struct net *net, struct tipc_bearer *b_ptr,
|
||||
bool shutting_down);
|
||||
static void bearer_disable(struct net *net, struct tipc_bearer *b_ptr);
|
||||
|
||||
/**
|
||||
* tipc_media_find - locates specified media object by name
|
||||
@@ -324,7 +323,7 @@ restart:
|
||||
|
||||
res = tipc_disc_create(net, b_ptr, &b_ptr->bcast_addr);
|
||||
if (res) {
|
||||
bearer_disable(net, b_ptr, false);
|
||||
bearer_disable(net, b_ptr);
|
||||
pr_warn("Bearer <%s> rejected, discovery object creation failed\n",
|
||||
name);
|
||||
return -EINVAL;
|
||||
@@ -344,7 +343,7 @@ restart:
|
||||
static int tipc_reset_bearer(struct net *net, struct tipc_bearer *b_ptr)
|
||||
{
|
||||
pr_info("Resetting bearer <%s>\n", b_ptr->name);
|
||||
tipc_link_reset_list(net, b_ptr->identity);
|
||||
tipc_link_delete_list(net, b_ptr->identity);
|
||||
tipc_disc_reset(net, b_ptr);
|
||||
return 0;
|
||||
}
|
||||
@@ -354,8 +353,7 @@ static int tipc_reset_bearer(struct net *net, struct tipc_bearer *b_ptr)
|
||||
*
|
||||
* Note: This routine assumes caller holds RTNL lock.
|
||||
*/
|
||||
static void bearer_disable(struct net *net, struct tipc_bearer *b_ptr,
|
||||
bool shutting_down)
|
||||
static void bearer_disable(struct net *net, struct tipc_bearer *b_ptr)
|
||||
{
|
||||
struct tipc_net *tn = net_generic(net, tipc_net_id);
|
||||
u32 i;
|
||||
@@ -363,7 +361,7 @@ static void bearer_disable(struct net *net, struct tipc_bearer *b_ptr,
|
||||
pr_info("Disabling bearer <%s>\n", b_ptr->name);
|
||||
b_ptr->media->disable_media(b_ptr);
|
||||
|
||||
tipc_link_delete_list(net, b_ptr->identity, shutting_down);
|
||||
tipc_link_delete_list(net, b_ptr->identity);
|
||||
if (b_ptr->link_req)
|
||||
tipc_disc_delete(b_ptr->link_req);
|
||||
|
||||
@@ -541,7 +539,7 @@ static int tipc_l2_device_event(struct notifier_block *nb, unsigned long evt,
|
||||
break;
|
||||
case NETDEV_UNREGISTER:
|
||||
case NETDEV_CHANGENAME:
|
||||
bearer_disable(dev_net(dev), b_ptr, false);
|
||||
bearer_disable(dev_net(dev), b_ptr);
|
||||
break;
|
||||
}
|
||||
return NOTIFY_OK;
|
||||
@@ -583,7 +581,7 @@ void tipc_bearer_stop(struct net *net)
|
||||
for (i = 0; i < MAX_BEARERS; i++) {
|
||||
b_ptr = rtnl_dereference(tn->bearer_list[i]);
|
||||
if (b_ptr) {
|
||||
bearer_disable(net, b_ptr, true);
|
||||
bearer_disable(net, b_ptr);
|
||||
tn->bearer_list[i] = NULL;
|
||||
}
|
||||
}
|
||||
@@ -747,7 +745,7 @@ int tipc_nl_bearer_disable(struct sk_buff *skb, struct genl_info *info)
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
bearer_disable(net, bearer, false);
|
||||
bearer_disable(net, bearer);
|
||||
rtnl_unlock();
|
||||
|
||||
return 0;
|
||||
|
Reference in New Issue
Block a user