@@ -222,6 +222,22 @@ static int add_int_argument(char **argstr, char *tok, int arg, bool allow_zero)
222222 return 0 ;
223223}
224224
225+ static int add_int_or_minus_one_argument (char * * argstr , char * tok , int arg )
226+ {
227+ char * nstr ;
228+
229+ if (arg < -1 )
230+ return 0 ;
231+ if (asprintf (& nstr , "%s,%s=%d" , * argstr , tok , arg ) < 0 ) {
232+ errno = ENOMEM ;
233+ return -1 ;
234+ }
235+ free (* argstr );
236+ * argstr = nstr ;
237+
238+ return 0 ;
239+ }
240+
225241static int add_argument (char * * argstr , const char * tok , const char * arg )
226242{
227243 char * nstr ;
@@ -413,9 +429,6 @@ static int build_options(nvme_host_t h, nvme_ctrl_t c, char **argstr)
413429 nvme_msg (LOG_ERR , "need a address (-a) argument\n" );
414430 return - ENVME_CONNECT_AARG ;
415431 }
416- /* Use the default ctrl loss timeout if unset */
417- if (cfg -> ctrl_loss_tmo == -1 )
418- cfg -> ctrl_loss_tmo = NVMF_DEF_CTRL_LOSS_TMO ;
419432 }
420433
421434 /* always specify nqn as first arg - this will init the string */
@@ -467,8 +480,8 @@ static int build_options(nvme_host_t h, nvme_ctrl_t c, char **argstr)
467480 add_int_argument (argstr , "reconnect_delay" ,
468481 cfg -> reconnect_delay , false) ||
469482 (strcmp (transport , "loop" ) &&
470- add_int_argument (argstr , "ctrl_loss_tmo" ,
471- cfg -> ctrl_loss_tmo , false )) ||
483+ add_int_or_minus_one_argument (argstr , "ctrl_loss_tmo" ,
484+ cfg -> ctrl_loss_tmo )) ||
472485 (strcmp (transport , "loop" ) &&
473486 add_int_argument (argstr , "fast_io_fail_tmo" ,
474487 cfg -> fast_io_fail_tmo , false)) ||
0 commit comments