Re: [PATCH] xfstests: fix seek_sanity_test for fs w/o fallocate

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

 



On Fri, May 31, 2013 at 10:45:31AM -0500, Eric Sandeen wrote:
> currently the seek_sanity_test (generic/285) fails on ext3
> or ext2 due to fallocate() failures.  Just ignore that test
> if the fs doesn't support fallocate.

Hi Eric,

I remember that my patch had been applied [1].  But stranger I couldn't
find it in xfstests tree.  However, I think that your patch is better.

1. http://oss.sgi.com/archives/xfs/2013-05/msg00534.html

                                                - Zheng

> 
> Signed-off-by: Eric Sandeen <sandeen@xxxxxxxxxx>
> ---
> 
> diff --git a/src/seek_sanity_test.c b/src/seek_sanity_test.c
> index cd3b1ee..fbf5a8c 100644
> --- a/src/seek_sanity_test.c
> +++ b/src/seek_sanity_test.c
> @@ -96,9 +96,13 @@ static int do_fallocate(int fd, off_t offset, off_t length, int mode)
>  	int ret;
>  
>  	ret = fallocate(fd, mode, offset, length);
> -	if (ret)
> +	if (ret) {
> +		/* Don't warn about a filesystem w/o fallocate support */
> +		if (errno == EOPNOTSUPP)
> +			return ret;
>  		fprintf(stderr, "  ERROR %d: Failed to preallocate "
>  			"space to %ld bytes\n", errno, (long) length);
> +	}
>  
>  	return ret;
>  }
> @@ -290,8 +294,14 @@ static int test09(int fd, int testnum)
>  
>  	/* preallocate 8M space to file */
>  	ret = do_fallocate(fd, 0, filsz, 0);
> -	if (ret < 0)
> +	if (ret < 0) {
> +		/* Report success if fs doesn't support fallocate */
> +		if (errno == EOPNOTSUPP) {
> +			fprintf(stdout, "Test skipped as fs doesn't support fallocate.\n");
> +			ret = 0;
> +		}
>  		goto out;
> +	}
>  
>  	ret = do_pwrite(fd, buf, bufsz, bufsz * 10);
>  	if (!ret) {
> @@ -336,8 +346,14 @@ static int test08(int fd, int testnum)
>  
>  	/* preallocate 4M space to file */
>  	ret = do_fallocate(fd, 0, filsz, 0);
> -	if (ret < 0)
> +	if (ret < 0) {
> +		/* Report success if fs doesn't support fallocate */
> +		if (errno == EOPNOTSUPP) {
> +			fprintf(stdout, "Test skipped as fs doesn't support fallocate.\n");
> +			ret = 0;
> +		}
>  		goto out;
> +	}
>  
>  	ret = do_pwrite(fd, buf, bufsz, bufsz * 10);
>  	if (ret)
> @@ -379,8 +395,14 @@ static int test07(int fd, int testnum)
>  
>  	/* preallocate 4M space to file */
>  	ret = do_fallocate(fd, 0, filsz, 0);
> -	if (ret < 0)
> +	if (ret < 0) {
> +		/* Report success if fs doesn't support fallocate */
> +		if (errno == EOPNOTSUPP) {
> +			fprintf(stdout, "Test skipped as fs doesn't support fallocate.\n");
> +			ret = 0;
> +		}
>  		goto out;
> +	}
>  
>  	ret = do_pwrite(fd, buf, bufsz, bufsz * 10);
>  	if (ret)
> 
> _______________________________________________
> xfs mailing list
> xfs@xxxxxxxxxxx
> http://oss.sgi.com/mailman/listinfo/xfs

_______________________________________________
xfs mailing list
xfs@xxxxxxxxxxx
http://oss.sgi.com/mailman/listinfo/xfs




[Index of Archives]     [Linux XFS Devel]     [Linux Filesystem Development]     [Filesystem Testing]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux