All of lore.kernel.org
 help / color / mirror / Atom feed
From: Geoffrey Wehrman <gwehrman@sgi.com>
To: Christoph Hellwig <hch@infradead.org>
Cc: xfs@oss.sgi.com
Subject: Re: [PATCH] xfstests: test extent size hints
Date: Mon, 10 May 2010 12:36:18 -0500	[thread overview]
Message-ID: <20100510173618.GB12949@sgi.com> (raw)
In-Reply-To: <20100510172643.GA14991@infradead.org>

On Mon, May 10, 2010 at 01:26:43PM -0400, Christoph Hellwig wrote:
| On Thu, Apr 29, 2010 at 10:10:03AM -0500, Geoffrey Wehrman wrote:
| > On Thu, Apr 29, 2010 at 06:34:44AM -0400, Christoph Hellwig wrote:
| > | This is an adapted version of the reproduced in OSS BZ #874, which
| > | shows file corruption when using the extent size hint.
| > | 
| > | Geoffrey, can you say if licensing the small test program as GPLv2+
| > | is fine so that we can add it to xfstests?
| > 
| > Thanks for asking Christoph.  Please include an SGI copyright in both
| > the test script and the t_holes.c source.  The GPLv2+ license is fine.
| 
| Is this version fine to commit?

Looks great.  Thanks!

| Geoffrey, if you could add a Signed-off-by: that would be perfect,
| thanks!

Done.


Geoffrey

---

From: Christoph Hellwig <hch@lst.de>
Subject: [PATCH] xfstests: test extent size hints
Cc: Geoffrey Wehrman <gwehrman@sgi.com>

This is an adapted version of the reproduced in OSS BZ #874, which
shows file corruption when using the extent size hint.

Geoffrey, can you say if licensing the small test program as GPLv2+
is fine so that we can add it to xfstests?


Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Geoffrey Wehrman <gwehrman@sgi.com>

Index: xfstests-dev/229
===================================================================
--- /dev/null	1970-01-01 00:00:00.000000000 +0000
+++ xfstests-dev/229	2010-05-10 17:21:24.000000000 +0000
@@ -0,0 +1,88 @@
+#! /bin/bash
+# FS QA Test No. 221
+#
+# Check for file corruption when using the extent size hint on
+# the normal data subvolume.
+#
+# http://oss.sgi.com/bugzilla/show_bug.cgi?id=874
+#
+# Based on a bug report and testcase from Geoffrey Wehrman <gwehrman@sgi.com>.
+#
+#-----------------------------------------------------------------------
+# Copyright (c) 2010 Christoph Hellwig.  All Rights Reserved.
+# Copyright (c) 2010 Silicon Graphics, Inc.  All Rights Reserved.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License as
+# published by the Free Software Foundation.
+#
+# This program is distributed in the hope that it would be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write the Free Software Foundation,
+# Inc.,  51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+#
+#-----------------------------------------------------------------------
+#
+# creator
+owner=hch@lst.de
+
+seq=`basename $0`
+echo "QA output created by $seq"
+
+here=`pwd`
+tmp=/tmp/$$
+status=1	# failure is the default!
+
+_cleanup()
+{
+    rm -rf ${TDIR}
+}
+
+trap "_cleanup ; exit \$status" 0 1 2 3 15
+
+# get standard environment, filters and checks
+. ./common.rc
+
+# real QA test starts here
+_supported_fs generic
+_supported_os Linux
+
+TDIR="${TEST_DIR}/t_holes"
+NFILES="10"
+EXTSIZE="256k"
+
+# Create the test directory
+mkdir ${TDIR}
+
+# Set the test directory extsize
+xfs_io -c "extsize ${EXTSIZE}" ${TDIR}
+
+# Create a set of holey files
+echo "generating ${NFILES} files"
+
+for i in $(seq 0 ${NFILES}); do
+  $here/src/t_holes ${TDIR}/${i}
+done
+
+# Compare the files
+echo "comparing files"
+errcnt=0
+j=0
+for i in $(seq 0 ${NFILES}); do
+    let j=$i+1
+    while [ ${j} -lt ${NFILES} ] ; do
+	if ! cmp ${TDIR}/${i} ${TDIR}/${j} ; then
+	    let errcnt=$errcnt+1
+	fi
+	let j=$j+1
+    done
+done
+
+echo "got ${errcnt} errors"
+
+status=$errcnt
+exit $status
Index: xfstests-dev/229.out
===================================================================
--- /dev/null	1970-01-01 00:00:00.000000000 +0000
+++ xfstests-dev/229.out	2010-05-07 10:18:56.000000000 +0000
@@ -0,0 +1,4 @@
+QA output created by 229
+generating 10 files
+comparing files
+got 0 errors
Index: xfstests-dev/group
===================================================================
--- xfstests-dev.orig/group	2010-05-07 10:18:35.000000000 +0000
+++ xfstests-dev/group	2010-05-10 17:20:50.000000000 +0000
@@ -342,3 +342,4 @@ deprecated
 226 auto enospc
 227 auto fsr
 228 rw auto prealloc quick
+229 auto rw
Index: xfstests-dev/src/Makefile
===================================================================
--- xfstests-dev.orig/src/Makefile	2010-05-07 10:18:20.000000000 +0000
+++ xfstests-dev/src/Makefile	2010-05-07 10:18:56.000000000 +0000
@@ -10,7 +10,7 @@ TARGETS = dirstress fill fill2 getpagesi
 	mmapcat append_reader append_writer dirperf metaperf \
 	devzero feature alloc fault fstest t_access_root \
 	godown resvtest writemod makeextents itrash rename \
-	multi_open_unlink dmiperf unwritten_sync genhashnames
+	multi_open_unlink dmiperf unwritten_sync genhashnames t_holes
 
 LINUX_TARGETS = xfsctl bstat t_mtab getdevicesize preallo_rw_pattern_reader \
 	preallo_rw_pattern_writer ftrunc trunc fs_perms testx looptest \
Index: xfstests-dev/src/t_holes.c
===================================================================
--- /dev/null	1970-01-01 00:00:00.000000000 +0000
+++ xfstests-dev/src/t_holes.c	2010-05-10 17:22:33.000000000 +0000
@@ -0,0 +1,41 @@
+/*
+ * Copyright (c) 2010 Silicon Graphics, Inc.  All Rights Reserved.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it would be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write the Free Software Foundation,
+ * Inc.,  51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+ */
+#include <unistd.h>
+#include <fcntl.h>
+#include <sys/types.h>
+#include <stdio.h>
+
+int main(int argc, char **argv)
+{
+	int buf[1024];
+	int fd, i, j;
+
+	fd = open(argv[1], O_RDWR|O_CREAT, 0666);
+        for (i = 1; i < 9100; i++) {
+		for (j = 0; j < 1024; j++)
+			buf[j]  = i | i << 5;
+
+		if (write(fd,buf,253*4*sizeof(int))!= 253*4*sizeof(int))
+			printf("Write did not return correct amount\n");
+
+		if ((i % 9) == 0 && i < 9001)
+			lseek(fd, 4096 * 110,SEEK_CUR);
+	}
+
+	close(fd);
+	return 0;
+}

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

      reply	other threads:[~2010-05-10 17:34 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-04-29 10:34 [PATCH] xfstests: test extent size hints Christoph Hellwig
2010-04-29 15:10 ` Geoffrey Wehrman
2010-05-10 17:26   ` Christoph Hellwig
2010-05-10 17:36     ` Geoffrey Wehrman [this message]

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=20100510173618.GB12949@sgi.com \
    --to=gwehrman@sgi.com \
    --cc=hch@infradead.org \
    --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.