Re: [PATCH 2/2] blkid: introduce symbolic names for different blkid exit codes

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, May 16, 2012 at 10:52:40AM +0200, Voelker, Bernhard wrote:
> Petr Uzel wrote:
> 
> >  #include "ismounted.h"
> >  
> > -#define STRTOXX_EXIT_CODE	4		/* strtoxx_or_err() */
> > +#define STRTOXX_EXIT_CODE	BLKID_EXIT_OTHER	/* strtoxx_or_err() */
> 
> STRTOXX_EXIT_CODE is not used in blkid.c. Remove it?
> ... or if it used in strutils.h, then this is not a nice interface.

Yep, it is used in strutils.h.

> 
> >  #include "strutils.h"
> >  #include "closestream.h"
> >  #include "ttyutils.h"
> > @@ -484,7 +488,7 @@ static int lowprobe_device(blkid_probe pr, const char *devname,
> >  	fd = open(devname, O_RDONLY);
> >  	if (fd < 0) {
> >  		fprintf(stderr, "error: %s: %m\n", devname);
> > -		return 2;
> > +		return BLKID_EXIT_NOTFOUND;
> >  	}
> >  	if (blkid_probe_set_device(pr, fd, offset, size))
> >  		goto done;
> > @@ -551,9 +555,9 @@ done:
> >  	close(fd);
> >  
> >  	if (rc == -2)
> > -		return 8;	/* ambivalent probing result */
> > +		return BLKID_EXIT_AMBIVAL;	/* ambivalent probing result */
> >  	if (!nvals)
> > -		return 2;	/* nothing detected */
> > +		return BLKID_EXIT_NOTFOUND;	/* nothing detected */
> >  
> >  	return 0;		/* success */
> >  }
> 
> These are not exit() codes, but return codes. 

Strictly speaking, yes. But the idea is that those codes are (or
rather should be) propagated as exit value anyways...

> That value doesn't seem
> to be of much interest anyway, because it's used only here in main()
> in a for-loop, forgetting the return value of the previous iteration:
> 
>                for (i = 0; i < numdev; i++)
>                         err = lowprobe_device(pr, devices[i], lowprobe, show,
>                                         output_format,
>                                         (blkid_loff_t) offset,
>                                         (blkid_loff_t) size);

Hmm, the return value depends only on the last argument (device). I
don't think this is intentional. Karel?

        # blkid -p /dev/sda /dev/sdb ; echo $?
        /dev/sda: PTTYPE="gpt" 
        error: /dev/sdb: No such file or directory
        2
        
        # blkid -p /dev/sdb /dev/sda ; echo $?
        error: /dev/sdb: No such file or directory
        /dev/sda: PTTYPE="gpt" 
        0


> 
> Have a nice day,
> Berny
 
Thanks, 

Petr

-- 
Petr Uzel
IRC: ptr_uzl @ freenode

Attachment: pgp4oXWQ8t_H3.pgp
Description: PGP signature


[Index of Archives]     [Netdev]     [Ethernet Bridging]     [Linux Wireless]     [Kernel Newbies]     [Security]     [Linux for Hams]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux Admin]     [Samba]

  Powered by Linux