@@ -363,7 +363,7 @@ static int hostname2traddr(nvme_ctrl_t c)
363363 ret = getaddrinfo (c -> traddr , NULL , & hints , & host_info );
364364 if (ret ) {
365365 nvme_msg (LOG_ERR , "failed to resolve host %s info\n" , c -> traddr );
366- return ret ;
366+ return - ENVME_CONNECT_RESOLVE ;
367367 }
368368
369369 switch (host_info -> ai_family ) {
@@ -380,13 +380,13 @@ static int hostname2traddr(nvme_ctrl_t c)
380380 default :
381381 nvme_msg (LOG_ERR , "unrecognized address family (%d) %s\n" ,
382382 host_info -> ai_family , c -> traddr );
383- ret = - EINVAL ;
383+ ret = - ENVME_CONNECT_ADDRFAM ;
384384 goto free_addrinfo ;
385385 }
386386
387387 if (!p ) {
388388 nvme_msg (LOG_ERR , "failed to get traddr for %s\n" , c -> traddr );
389- ret = - errno ;
389+ ret = - ENVME_CONNECT_TRADDR ;
390390 goto free_addrinfo ;
391391 }
392392 c -> traddr = strdup (addrstr );
@@ -405,15 +405,13 @@ static int build_options(nvme_host_t h, nvme_ctrl_t c, char **argstr)
405405
406406 if (!transport ) {
407407 nvme_msg (LOG_ERR , "need a transport (-t) argument\n" );
408- errno = EINVAL ;
409- return -1 ;
408+ return - ENVME_CONNECT_TARG ;
410409 }
411410
412411 if (strncmp (transport , "loop" , 4 )) {
413412 if (!nvme_ctrl_get_traddr (c )) {
414413 nvme_msg (LOG_ERR , "need a address (-a) argument\n" );
415- errno = EINVAL ;
416- return -1 ;
414+ return - ENVME_CONNECT_AARG ;
417415 }
418416 /* Use the default ctrl loss timeout if unset */
419417 if (cfg -> ctrl_loss_tmo == -1 )
@@ -423,8 +421,7 @@ static int build_options(nvme_host_t h, nvme_ctrl_t c, char **argstr)
423421 /* always specify nqn as first arg - this will init the string */
424422 if (asprintf (argstr , "nqn=%s" ,
425423 nvme_ctrl_get_subsysnqn (c )) < 0 ) {
426- errno = ENOMEM ;
427- return -1 ;
424+ return - ENOMEM ;
428425 }
429426 if (!strcmp (nvme_ctrl_get_subsysnqn (c ), NVME_DISC_SUBSYS_NAME )) {
430427 nvme_ctrl_set_discovery_ctrl (c , true);
@@ -501,7 +498,7 @@ static int __nvmf_add_ctrl(const char *argstr)
501498 if (fd < 0 ) {
502499 nvme_msg (LOG_ERR , "Failed to open %s: %s\n" ,
503500 nvmf_dev , strerror (errno ));
504- return -1 ;
501+ return - ENVME_CONNECT_OPEN ;
505502 }
506503
507504 nvme_msg (LOG_DEBUG , "connect ctrl, '%.*s'\n" ,
@@ -510,15 +507,15 @@ static int __nvmf_add_ctrl(const char *argstr)
510507 if (ret != len ) {
511508 nvme_msg (LOG_NOTICE , "Failed to write to %s: %s\n" ,
512509 nvmf_dev , strerror (errno ));
513- ret = -1 ;
510+ ret = - ENVME_CONNECT_WRITE ;
514511 goto out_close ;
515512 }
516513
517514 len = read (fd , buf , sizeof (buf ));
518515 if (len < 0 ) {
519516 nvme_msg (LOG_ERR , "Failed to read from %s: %s\n" ,
520517 nvmf_dev , strerror (errno ));
521- ret = -1 ;
518+ ret = - ENVME_CONNECT_READ ;
522519 goto out_close ;
523520 }
524521 nvme_msg (LOG_DEBUG , "connect ctrl, response '%.*s'\n" ,
@@ -533,8 +530,7 @@ static int __nvmf_add_ctrl(const char *argstr)
533530 }
534531
535532 nvme_msg (LOG_ERR , "Failed to parse ctrl info for \"%s\"\n" , argstr );
536- errno = EINVAL ;
537- ret = -1 ;
533+ ret = - ENVME_CONNECT_PARSE ;
538534out_close :
539535 close (fd );
540536 return ret ;
@@ -550,18 +546,26 @@ int nvmf_add_ctrl_opts(nvme_ctrl_t c, struct nvme_fabrics_config *cfg)
550546 cfg = merge_config (c , cfg );
551547 if (traddr_is_hostname (c )) {
552548 ret = hostname2traddr (c );
553- if (ret )
554- return ret ;
549+ if (ret ) {
550+ errno = - ret ;
551+ return -1 ;
552+ }
555553 }
556554
557555 ret = build_options (h , c , & argstr );
558- if (ret )
559- return ret ;
556+ if (ret ) {
557+ errno = - ret ;
558+ return -1 ;
559+ }
560560
561561 ret = __nvmf_add_ctrl (argstr );
562562 free (argstr );
563- if (ret >= 0 )
563+ if (ret < 0 ) {
564+ errno = - ret ;
565+ ret = -1 ;
566+ } else {
564567 nvme_msg (LOG_INFO , "nvme%d: ctrl connected\n" , ret );
568+ }
565569 return ret ;
566570}
567571
@@ -577,8 +581,10 @@ int nvmf_add_ctrl(nvme_host_t h, nvme_ctrl_t c,
577581 nvme_ctrl_set_discovered (c , true);
578582 if (traddr_is_hostname (c )) {
579583 ret = hostname2traddr (c );
580- if (ret )
581- return ret ;
584+ if (ret ) {
585+ errno = - ret ;
586+ return -1 ;
587+ }
582588 }
583589
584590 ret = build_options (h , c , & argstr );
@@ -587,8 +593,10 @@ int nvmf_add_ctrl(nvme_host_t h, nvme_ctrl_t c,
587593
588594 ret = __nvmf_add_ctrl (argstr );
589595 free (argstr );
590- if (ret < 0 )
591- return ret ;
596+ if (ret < 0 ) {
597+ errno = - ret ;
598+ return -1 ;
599+ }
592600
593601 nvme_msg (LOG_INFO , "nvme%d: ctrl connected\n" , ret );
594602 return nvme_init_ctrl (h , c , ret );
0 commit comments