All of lore.kernel.org
 help / color / mirror / Atom feed
From: Josef Bacik <josef@redhat.com>
To: Eric Sandeen <sandeen@sandeen.net>
Cc: Eric Sandeen <sandeen@redhat.com>,
	Josef Bacik <jbacik@redhat.com>,
	xfs mailing list <xfs@oss.sgi.com>
Subject: Re: [PATCH 2/2 V2] xfstests 225: add additional fiemap-tester run without sync
Date: Fri, 25 Feb 2011 09:49:09 -0500	[thread overview]
Message-ID: <20110225144908.GA2534@localhost.localdomain> (raw)
In-Reply-To: <4D66D8F2.10501@sandeen.net>

On Thu, Feb 24, 2011 at 04:17:22PM -0600, Eric Sandeen wrote:
> Chris Mason pointed out that some filesystems were not doing
> the right thing on fiemap, in the face of delalloc extents.
> 
> Because test 225 ran with FIEMAP_FLAG_SYNC only, this didn't
> get caught.  Add a runtime option, and run it both ways.
> 
> Signed-off-by: Eric Sandeen <sandeen@redhat.com>
> ---
> 
> Whoops, V2: actually call w/ the sync flag.
> 
> diff --git a/225 b/225
> index 6e879a4..6b203e6 100755
> --- a/225
> +++ b/225
> @@ -60,7 +60,10 @@ _cleanup()
>  }
>  trap "_cleanup; exit \$status" 0 1 2 3 15
>  
> -echo "fiemap run without preallocation"
> +echo "fiemap run without preallocation, with sync"
> +$here/src/fiemap-tester -q -S -p 0 -r 200 $fiemapfile 2>&1 | tee $fiemaplog
> +
> +echo "fiemap run without preallocation or sync"
>  $here/src/fiemap-tester -q -p 0 -r 200 $fiemapfile 2>&1 | tee $fiemaplog
>  
>  if grep -q "Operation not supported" $fiemaplog; then
> diff --git a/225.out b/225.out
> index 7bc9312..b4f6477 100644
> --- a/225.out
> +++ b/225.out
> @@ -1,2 +1,3 @@
>  QA output created by 225
> -fiemap run without preallocation
> +fiemap run without preallocation, with sync
> +fiemap run without preallocation or sync
> diff --git a/src/fiemap-tester.c b/src/fiemap-tester.c
> index 53d7a64..6320580 100644
> --- a/src/fiemap-tester.c
> +++ b/src/fiemap-tester.c
> @@ -418,7 +418,7 @@ static int query_fiemap_count(int fd, int blocks, int blocksize)
>  }
>  
>  static int
> -compare_fiemap_and_map(int fd, char *map, int blocks, int blocksize)
> +compare_fiemap_and_map(int fd, char *map, int blocks, int blocksize, int syncfile)
>  {
>  	struct fiemap *fiemap;
>  	char *fiebuf;
> @@ -446,7 +446,7 @@ compare_fiemap_and_map(int fd, char *map, int blocks, int blocksize)
>  			last_data = i;
>  	}
>  
> -	fiemap->fm_flags = FIEMAP_FLAG_SYNC;
> +	fiemap->fm_flags = syncfile ? FIEMAP_FLAG_SYNC : 0;
>  	fiemap->fm_extent_count = blocks_to_map;
>  	fiemap->fm_mapped_extents = 0;
>  
> @@ -519,9 +519,10 @@ main(int argc, char **argv)
>  	int	blocks = 0;	/* the number of blocks to generate */
>  	int	maxblocks = 0;	/* max # of blocks to create */
>  	int	prealloc = 1;	/* whether or not to do preallocation */
> +	int	syncfile = 0;	/* whether fiemap should  sync file first */
>  	int	seed = 1;
>  
> -	while ((opt = getopt(argc, argv, "m:r:s:p:q")) != -1) {
> +	while ((opt = getopt(argc, argv, "m:r:s:p:qS")) != -1) {
>  		switch(opt) {
>  		case 'm':
>  			map = strdup(optarg);
> @@ -538,13 +539,16 @@ main(int argc, char **argv)
>  		case 'q':
>  			quiet = 1;
>  			break;
> -		/* sync file before mapping */
>  		case 'r':
>  			runs = atoi(optarg);
>  			break;
>  		case 's':
>  			seed = atoi(optarg);
>  			break;
> +		/* sync file before mapping */
> +		case 'S':
> +			syncfile = 1;
> +			break;
>  		default:
>  			usage();
>  		}
> @@ -623,7 +627,7 @@ main(int argc, char **argv)
>  			exit(1);
>  		}
>  
> -		rc = compare_fiemap_and_map(fd, map, blocks, blocksize);
> +		rc = compare_fiemap_and_map(fd, map, blocks, blocksize, syncfile);
>  		if (rc) {
>  			printf("Problem comparing fiemap and map\n");
>  			free(map);
> 
> 

How about something in the usage() function to show we have this handy option
:).  Thanks,

Josef

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

  reply	other threads:[~2011-02-25 14:46 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-02-24 22:04 [PATCH 2/2] xfstests 225: add additional fiemap-tester run without sync Eric Sandeen
2011-02-24 22:17 ` [PATCH 2/2 V2] " Eric Sandeen
2011-02-25 14:49   ` Josef Bacik [this message]
2011-02-25 20:47   ` Alex Elder

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20110225144908.GA2534@localhost.localdomain \
    --to=josef@redhat.com \
    --cc=jbacik@redhat.com \
    --cc=sandeen@redhat.com \
    --cc=sandeen@sandeen.net \
    --cc=xfs@oss.sgi.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.