From: Eric Sandeen <sandeen@redhat.com>
To: xfs mailing list <xfs@oss.sgi.com>, Josef Bacik <jbacik@redhat.com>
Subject: [PATCH 2/2] xfstests 225: add additional fiemap-tester run without sync
Date: Thu, 24 Feb 2011 16:04:11 -0600 [thread overview]
Message-ID: <4D66D5DB.5090203@redhat.com> (raw)
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>
---
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 -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);
_______________________________________________
xfs mailing list
xfs@oss.sgi.com
http://oss.sgi.com/mailman/listinfo/xfs
next reply other threads:[~2011-02-24 22:01 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-02-24 22:04 Eric Sandeen [this message]
2011-02-24 22:17 ` [PATCH 2/2 V2] xfstests 225: add additional fiemap-tester run without sync Eric Sandeen
2011-02-25 14:49 ` Josef Bacik
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=4D66D5DB.5090203@redhat.com \
--to=sandeen@redhat.com \
--cc=jbacik@redhat.com \
--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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox