@@ -2998,44 +2998,42 @@ uuid_instance_refresh(void)
29982998 /* at this point dev_name contains our device name, we now need to store
29992999 this and find out the UUID for the drive. The UUID will be used to
30003000 map stats to disk drive instances */
3001-
3001+
30023002 if ((env_command = getenv ("SMART_SETUP_UUID" )) != NULL ) {
3003- //pmsprintf(buffer, sizeof(buffer), "%s", env_command);
30043003 sscanf (env_command , "%s" , buffer );
3005- n = 1 ;
3006- } else {
3007- n = pmsprintf (buffer , sizeof (buffer ), "/sys/block/%s/device/wwid" , dev_name );
3008- if (n <= 0 || access (buffer , F_OK ) != 0 ) /* try alternate path */
3009- n = pmsprintf (buffer , sizeof (buffer ), "/sys/block/%s/wwid" , dev_name );
3010-
3011- if (n <= 0 || access (buffer , F_OK ) != 0 ) { /* alternative path also bad */
3004+ if ((fd = open (buffer , O_RDONLY )) < 0 ) {
3005+ /* env_command path fail */
30123006 pclose (pf );
3013- return 0 ;
3007+ return - oserror ();
3008+ }
3009+ }else {
3010+ pmsprintf (buffer , sizeof (buffer ), "/sys/block/%s/device/wwid" , dev_name );
3011+ if ((fd = open (buffer , O_RDONLY )) < 0 ) {
3012+ /* try alternate path */
3013+ pmsprintf (buffer , sizeof (buffer ), "/sys/block/%s/wwid" , dev_name );
3014+ if ((fd = open (buffer , O_RDONLY )) < 0 ) {
3015+ /* alternative path also bad */
3016+ pclose (pf );
3017+ return - oserror ();
3018+ }
30143019 }
30153020 }
3021+
3022+ n = read (fd , buffer , sizeof (buffer ));
3023+ close (fd );
30163024
3017- if (n > 0 && (fd = open (buffer , O_RDONLY )) >= 0 ) {
3018- n = read (fd , buffer , sizeof (buffer ));
3019- close (fd );
3020-
3021- if (n > 0 ) {
3022- buffer [n - 1 ] = '\0' ;
3023-
3024- if (strlen (buffer ) == 0 )
3025- continue ;
3026-
3027- if (strncmp (buffer , "t10." , 4 ) == 0 ) {
3028- sscanf (buffer , "t10.%s" , dev_uuid );
3025+ if (n >= 0 ) {
3026+ if (strncmp (buffer , "t10." , 4 ) == 0 ) {
3027+ sscanf (buffer , "t10.%s" , dev_uuid );
30293028
3030- } else if (strncmp (buffer , "eui." , 4 ) == 0 ) {
3031- sscanf (buffer , "eui.%s" , dev_uuid );
3029+ } else if (strncmp (buffer , "eui." , 4 ) == 0 ) {
3030+ sscanf (buffer , "eui.%s" , dev_uuid );
30323031
3033- } else if (strncmp (buffer , "naa." , 4 ) == 0 ) {
3034- sscanf (buffer , "naa.%s" , dev_uuid );
3032+ } else if (strncmp (buffer , "naa." , 4 ) == 0 ) {
3033+ sscanf (buffer , "naa.%s" , dev_uuid );
30353034
3036- } else {
3037- sscanf (buffer , "%s" , dev_uuid );
3038- }
3035+ } else {
3036+ sscanf (buffer , "%s" , dev_uuid );
30393037 }
30403038 }
30413039
0 commit comments