[LTP] [PATCH 1/3] diotest: cleanup & fix

Cyril Hrubis chrubis@suse.cz
Wed Nov 4 13:41:30 CET 2015


Hi!
> +static void fail_clean(int fd1, int fd2, char *infile, char *outfile)
>  {
>  	close(fd1);
>  	close(fd2);
> @@ -98,7 +93,8 @@ int main(int argc, char *argv[])
>  	while ((i = getopt(argc, argv, "b:n:i:o:")) != -1) {
>  		switch (i) {
>  		case 'b':
> -			if ((bufsize = atoi(optarg)) <= 0) {
> +			bufsize = atoi(optarg);
> +			if (bufsize <= 0) {
>  				fprintf(stderr, "bufsize must be > 0\n");
>  				prg_usage();
>  			}
> @@ -109,7 +105,8 @@ int main(int argc, char *argv[])
>  			}
>  			break;
>  		case 'n':
> -			if ((numblks = atoi(optarg)) <= 0) {
> +			numblks = atoi(optarg);
> +			if (numblks <= 0) {
>  				fprintf(stderr, "numblks must be > 0\n");
>  				prg_usage();
>  			}
> @@ -126,21 +123,25 @@ int main(int argc, char *argv[])
>  	}
>  
>  	/* Test for filesystem support of O_DIRECT */
> -	if ((fd = open(infile, O_DIRECT | O_RDWR | O_CREAT, 0666)) < 0) {
> -		tst_brkm(TCONF,
> -			 NULL,
> -			 "O_DIRECT is not supported by this filesystem.");
> -	} else {
> -		close(fd);
> -	}
> +	fd = open(infile, O_DIRECT | O_RDWR | O_CREAT, 0666);
> +	if (fd < 0 && errno == EINVAL)
> +		tst_brkm(TCONF, NULL,
> +			 "O_DIRECT is not supported by this filesystem. %s",
> +			 strerror(errno));
> +	else if (fd < 0)

Well LKML coding style preffers to have curly braces if the statement
spans across multiple lines, even if it's one function call. Not that
this is a big problem, we have quite a lot of code that does not reflect
that.

> +		tst_brkm(TBROK, NULL, "Couldn't open test file %s: %s",
> +			 infile, strerror(errno));
> +	close(fd);
>  
>  	/* Open files */
> -	if ((fd1 = open(infile, O_DIRECT | O_RDWR | O_CREAT, 0666)) < 0) {
> +	fd1 = open(infile, O_DIRECT | O_RDWR | O_CREAT, 0666);
> +	if (fd1 < 0) {
>  		tst_brkm(TFAIL, NULL, "open infile failed: %s",
>  			 strerror(errno));
>  	}

Can you pretty please change all the open statements into to
SAFE_OPEN()?

You would have to convert the fail_clean() into cleanup() without any
parameters (make fd1, fd2 global...) in this case but that shouldn't be
that hard...


Otherwise the changes looks good.

-- 
Cyril Hrubis
chrubis@suse.cz


More information about the Ltp mailing list