]> www.infradead.org Git - users/hch/xfstests-dev.git/commitdiff
src/fsync-err: write to different offset on each fd
authorJeff Layton <jlayton@redhat.com>
Wed, 13 Sep 2017 13:06:24 +0000 (09:06 -0400)
committerEryu Guan <eguan@redhat.com>
Sun, 17 Sep 2017 14:24:28 +0000 (22:24 +0800)
NFS currently has slightly different semantics from other fs' and
fails this test due to the fact that the same range is overwritten
via each fd.

Change it so that each fd overwrites a different region, which is
more representative of a real workload anyway.

Reported-by: Neil Brown <neilb@suse.com>
Signed-off-by: Jeff Layton <jlayton@redhat.com>
Reviewed-by: Eryu Guan <eguan@redhat.com>
Signed-off-by: Eryu Guan <eguan@redhat.com>
src/fsync-err.c

index 4b0205cf2fd4a169d246ed8881e0244de80a1495..146688ddb01e636ca8223b6c3d44d0505d83683e 100644 (file)
@@ -106,7 +106,7 @@ int main(int argc, char **argv)
        memset(buf, 0x7c, bufsize);
 
        for (i = 0; i < numfds; ++i) {
-               ret = write(fd[i], buf, bufsize);
+               ret = pwrite(fd[i], buf, bufsize, i * bufsize);
                if (ret < 0) {
                        printf("First write on fd[%d] failed: %m\n", i);
                        return 1;
@@ -149,7 +149,7 @@ int main(int argc, char **argv)
        }
 
        for (i = 0; i < numfds; ++i) {
-               ret = write(fd[i], buf, bufsize);
+               ret = pwrite(fd[i], buf, bufsize, i * bufsize);
                if (ret < 0) {
                        printf("Second write on fd[%d] failed: %m\n", i);
                        return 1;