From df511e8ae810352abb0839e92e02b342d53a79db Mon Sep 17 00:00:00 2001 From: Amir Shehata Date: Fri, 30 Jun 2017 18:06:40 -0700 Subject: [PATCH] LU-9729 lnet: correct locking in legacy add net Make sure to unlock the api mutex properly in lnet_dyn_add_net() Lustre-change: https://review.whamcloud.com/27907 Lustre-commit: 65326ab2f3e7493f72767cd3c69471f3985c77f6 Test-Parameters: trivial Signed-off-by: Amir Shehata Change-Id: I786545de690ea5966771be3e84d3561b794d55ec Reviewed-by: Olaf Weber Reviewed-by: Sonia Sharma Signed-off-by: Minh Diep Reviewed-on: https://review.whamcloud.com/28236 Tested-by: Jenkins Tested-by: Maloo Reviewed-by: John L. Hammond --- lnet/lnet/api-ni.c | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/lnet/lnet/api-ni.c b/lnet/lnet/api-ni.c index e63feac..e912e58 100644 --- a/lnet/lnet/api-ni.c +++ b/lnet/lnet/api-ni.c @@ -2505,7 +2505,7 @@ lnet_dyn_add_net(struct lnet_ioctl_config_data *conf) if (rc > 1) { rc = -EINVAL; /* only add one network per call */ - goto failed; + goto out_unlock_clean; } net = list_entry(net_head.next, struct lnet_net, net_list); @@ -2525,14 +2525,11 @@ lnet_dyn_add_net(struct lnet_ioctl_config_data *conf) conf->cfg_config_u.cfg_net.net_max_tx_credits; rc = lnet_add_net_common(net, &tun); - if (rc != 0) - goto failed; - return 0; - -failed: +out_unlock_clean: mutex_unlock(&the_lnet.ln_api_mutex); while (!list_empty(&net_head)) { + /* net_head list is empty in success case */ net = list_entry(net_head.next, struct lnet_net, net_list); list_del_init(&net->net_list); lnet_net_free(net); -- 1.8.3.1