@@ -361,7 +361,7 @@ static int hostname2traddr(nvme_ctrl_t c)
361361 ret = getaddrinfo (c -> traddr , NULL , & hints , & host_info );
362362 if (ret ) {
363363 nvme_msg (LOG_ERR , "failed to resolve host %s info\n" , c -> traddr );
364- return ret ;
364+ return - ENVME_CONNECT_RESOLVE ;
365365 }
366366
367367 switch (host_info -> ai_family ) {
@@ -378,13 +378,13 @@ static int hostname2traddr(nvme_ctrl_t c)
378378 default :
379379 nvme_msg (LOG_ERR , "unrecognized address family (%d) %s\n" ,
380380 host_info -> ai_family , c -> traddr );
381- ret = - EINVAL ;
381+ ret = - ENVME_CONNECT_ADDRFAM ;
382382 goto free_addrinfo ;
383383 }
384384
385385 if (!p ) {
386386 nvme_msg (LOG_ERR , "failed to get traddr for %s\n" , c -> traddr );
387- ret = - errno ;
387+ ret = - ENVME_CONNECT_TRADDR ;
388388 goto free_addrinfo ;
389389 }
390390 c -> traddr = strdup (addrstr );
@@ -403,15 +403,13 @@ static int build_options(nvme_host_t h, nvme_ctrl_t c, char **argstr)
403403
404404 if (!transport ) {
405405 nvme_msg (LOG_ERR , "need a transport (-t) argument\n" );
406- errno = EINVAL ;
407- return -1 ;
406+ return - ENVME_CONNECT_TARG ;
408407 }
409408
410409 if (strncmp (transport , "loop" , 4 )) {
411410 if (!nvme_ctrl_get_traddr (c )) {
412411 nvme_msg (LOG_ERR , "need a address (-a) argument\n" );
413- errno = EINVAL ;
414- return -1 ;
412+ return - ENVME_CONNECT_AARG ;
415413 }
416414 /* Use the default ctrl loss timeout if unset */
417415 if (cfg -> ctrl_loss_tmo == -1 )
@@ -421,8 +419,7 @@ static int build_options(nvme_host_t h, nvme_ctrl_t c, char **argstr)
421419 /* always specify nqn as first arg - this will init the string */
422420 if (asprintf (argstr , "nqn=%s" ,
423421 nvme_ctrl_get_subsysnqn (c )) < 0 ) {
424- errno = ENOMEM ;
425- return -1 ;
422+ return - ENOMEM ;
426423 }
427424 if (!strcmp (nvme_ctrl_get_subsysnqn (c ), NVME_DISC_SUBSYS_NAME )) {
428425 nvme_ctrl_set_discovery_ctrl (c , true);
@@ -499,7 +496,7 @@ static int __nvmf_add_ctrl(const char *argstr)
499496 if (fd < 0 ) {
500497 nvme_msg (LOG_ERR , "Failed to open %s: %s\n" ,
501498 nvmf_dev , strerror (errno ));
502- return -1 ;
499+ return - ENVME_CONNECT_OPEN ;
503500 }
504501
505502 nvme_msg (LOG_DEBUG , "connect ctrl, '%.*s'\n" ,
@@ -508,15 +505,15 @@ static int __nvmf_add_ctrl(const char *argstr)
508505 if (ret != len ) {
509506 nvme_msg (LOG_NOTICE , "Failed to write to %s: %s\n" ,
510507 nvmf_dev , strerror (errno ));
511- ret = -1 ;
508+ ret = - ENVME_CONNECT_WRITE ;
512509 goto out_close ;
513510 }
514511
515512 len = read (fd , buf , sizeof (buf ));
516513 if (len < 0 ) {
517514 nvme_msg (LOG_ERR , "Failed to read from %s: %s\n" ,
518515 nvmf_dev , strerror (errno ));
519- ret = -1 ;
516+ ret = - ENVME_CONNECT_READ ;
520517 goto out_close ;
521518 }
522519 nvme_msg (LOG_DEBUG , "connect ctrl, response '%.*s'\n" ,
@@ -531,8 +528,7 @@ static int __nvmf_add_ctrl(const char *argstr)
531528 }
532529
533530 nvme_msg (LOG_ERR , "Failed to parse ctrl info for \"%s\"\n" , argstr );
534- errno = EINVAL ;
535- ret = -1 ;
531+ ret = - ENVME_CONNECT_PARSE ;
536532out_close :
537533 close (fd );
538534 return ret ;
@@ -548,18 +544,26 @@ int nvmf_add_ctrl_opts(nvme_ctrl_t c, struct nvme_fabrics_config *cfg)
548544 cfg = merge_config (c , cfg );
549545 if (traddr_is_hostname (c )) {
550546 ret = hostname2traddr (c );
551- if (ret )
552- return ret ;
547+ if (ret ) {
548+ errno = - ret ;
549+ return -1 ;
550+ }
553551 }
554552
555553 ret = build_options (h , c , & argstr );
556- if (ret )
557- return ret ;
554+ if (ret ) {
555+ errno = - ret ;
556+ return -1 ;
557+ }
558558
559559 ret = __nvmf_add_ctrl (argstr );
560560 free (argstr );
561- if (ret >= 0 )
561+ if (ret < 0 ) {
562+ errno = - ret ;
563+ ret = -1 ;
564+ } else {
562565 nvme_msg (LOG_INFO , "nvme%d: ctrl connected\n" , ret );
566+ }
563567 return ret ;
564568}
565569
@@ -575,8 +579,10 @@ int nvmf_add_ctrl(nvme_host_t h, nvme_ctrl_t c,
575579 nvme_ctrl_set_discovered (c , true);
576580 if (traddr_is_hostname (c )) {
577581 ret = hostname2traddr (c );
578- if (ret )
579- return ret ;
582+ if (ret ) {
583+ errno = - ret ;
584+ return -1 ;
585+ }
580586 }
581587
582588 ret = build_options (h , c , & argstr );
@@ -585,8 +591,10 @@ int nvmf_add_ctrl(nvme_host_t h, nvme_ctrl_t c,
585591
586592 ret = __nvmf_add_ctrl (argstr );
587593 free (argstr );
588- if (ret < 0 )
589- return ret ;
594+ if (ret < 0 ) {
595+ errno = - ret ;
596+ return -1 ;
597+ }
590598
591599 nvme_msg (LOG_INFO , "nvme%d: ctrl connected\n" , ret );
592600 return nvme_init_ctrl (h , c , ret );
0 commit comments