Whamcloud - gitweb
LU-13662 lnet: handle undefined parameters
[fs/lustre-release.git] / lnet / lnet / api-ni.c
index 62411c6..8c97fba 100644 (file)
@@ -3171,6 +3171,19 @@ failed:
        return rc;
 }
 
+static void
+lnet_set_tune_defaults(struct lnet_ioctl_config_lnd_tunables *tun)
+{
+       if (tun) {
+               if (!tun->lt_cmn.lct_peer_timeout)
+                       tun->lt_cmn.lct_peer_timeout = DEFAULT_PEER_TIMEOUT;
+               if (!tun->lt_cmn.lct_peer_tx_credits)
+                       tun->lt_cmn.lct_peer_tx_credits = DEFAULT_PEER_CREDITS;
+               if (!tun->lt_cmn.lct_max_tx_credits)
+                       tun->lt_cmn.lct_max_tx_credits = DEFAULT_CREDITS;
+       }
+}
+
 static int lnet_handle_legacy_ip2nets(char *ip2nets,
                                      struct lnet_ioctl_config_lnd_tunables *tun)
 {
@@ -3187,6 +3200,8 @@ static int lnet_handle_legacy_ip2nets(char *ip2nets,
        if (rc < 0)
                return rc;
 
+       lnet_set_tune_defaults(tun);
+
        mutex_lock(&the_lnet.ln_api_mutex);
        while (!list_empty(&net_head)) {
                net = list_entry(net_head.next, struct lnet_net, net_list);
@@ -3248,6 +3263,8 @@ int lnet_dyn_add_ni(struct lnet_ioctl_config_ni *conf)
        if (!ni)
                return -ENOMEM;
 
+       lnet_set_tune_defaults(tun);
+
        mutex_lock(&the_lnet.ln_api_mutex);
 
        rc = lnet_add_net_common(net, tun);
@@ -3380,13 +3397,16 @@ lnet_dyn_add_net(struct lnet_ioctl_config_data *conf)
        memset(&tun, 0, sizeof(tun));
 
        tun.lt_cmn.lct_peer_timeout =
-         conf->cfg_config_u.cfg_net.net_peer_timeout;
+         (!conf->cfg_config_u.cfg_net.net_peer_timeout) ? DEFAULT_PEER_TIMEOUT :
+               conf->cfg_config_u.cfg_net.net_peer_timeout;
        tun.lt_cmn.lct_peer_tx_credits =
-         conf->cfg_config_u.cfg_net.net_peer_tx_credits;
+         (!conf->cfg_config_u.cfg_net.net_peer_tx_credits) ? DEFAULT_PEER_CREDITS :
+               conf->cfg_config_u.cfg_net.net_peer_tx_credits;
        tun.lt_cmn.lct_peer_rtr_credits =
          conf->cfg_config_u.cfg_net.net_peer_rtr_credits;
        tun.lt_cmn.lct_max_tx_credits =
-         conf->cfg_config_u.cfg_net.net_max_tx_credits;
+         (!conf->cfg_config_u.cfg_net.net_max_tx_credits) ? DEFAULT_CREDITS :
+               conf->cfg_config_u.cfg_net.net_max_tx_credits;
 
        rc = lnet_add_net_common(net, &tun);