Josef Bacik [Tue, 30 Nov 2010 22:22:34 +0000 (23:22 +0100)]
xfstest 245: accept ENOTEMPTY as a valid error
Test 245 only checks to see if the rename returned EEXIST, but according to the
rename(2) manpage, ENOTEMPTY is also a valid result, which is in fact what Btrfs
returns. So just filter the output for ENOTEMPTY so that either EEXIST or
ENOTEMPTY will pass the test. It's not pretty I know, but I couldn't really
figure out a good way to get an either/or output to compare. With this fix
Btrfs now passes 245.
Signed-off-by: Josef Bacik <josef@redhat.com> Signed-off-by: Christoph Hellwig <hch@lst.de>
Lachlan McIlroy [Fri, 19 Nov 2010 16:17:34 +0000 (10:17 -0600)]
xfstests 247: Test for race between direct I/O and mmap
A customer reported a problem:
If a process is using mmap to write to a file on an
ext4 filesystem while another process is using direct
I/O to write to the same file the first thread may
receive a SIGBUS during a page fault.
A SIGBUS occurs if the page fault tries to access a
page that is entirely beyond the end of the file but
in this test case that should not be happening.
Signed-off-by: Lachlan McIlroy <lmcilory@redhat.com> Signed-off-by: Eric Sandeen <sandeen@redhat.com> Reviewed-by: Dave Chinner <dchinner@redhat.com>
Boris Ranto [Thu, 18 Nov 2010 02:44:57 +0000 (20:44 -0600)]
xfstests 223: reinitialize MKFS_OPTIONS
Test case 223 constantly fails because the variable carrying mkfs
options is not being reinitialized.
Test calls function _scratch_mkfs_geom repeatedly in for loop without
cleaning the MKFS_OPTIONS variable. Since _scratch_mkfs_geom only
appends options to the variable, MKFS_OPTIONS looks like this in 5th
iteration:
MKFS_OPTIONS="-bsize=4096-b size=4096 -d su=8192,sw=4-b size=4096 -d
su=16384,sw=4-b size=4096 -d su=32768,sw=4-b size=4096 -d
su=65536,sw=4-b size=4096 -d su=131072,sw=4"
It is also easy to see that _scratch_mkfs_geom does not append leading
space when it appends the variable.
Following patch fixes the issue for me and based on my testing does not
break any other test case:
Signed-off-by: Boris Ranto <branto@redhat.com> Signed-off-by: Eric Sandeen <sandeen@redhat.com> Reviewed-by: Eric Sandeen <sandeen@redhat.com>
Add a helper to check if the filesystem supports sparse files. This is
used to guard tests that exercise sparse file functionality and would
take forever on filesystems that have to zero all blocks on extending
truncates.
Unfortunately there's no good way to autodetect this functionality, so
just implement it as a blacklist for now.
Signed-off-by: Christoph Hellwig <hch@lst.de> Reviewed-by: Dave Chinner <dchinner@redhat.com>
Alex Elder [Fri, 22 Oct 2010 14:09:24 +0000 (14:09 +0000)]
xfstests: use a common _filter_test_dir function
Christoph Hellwig suggested that a function similar to the common
"_filter_scratch" function ought to be created to handle filtering
of the TEST_DIR and TEST_DEV variables. This patch implements that.
The name "_filter_test" seems like it might suggest it does
something different, so I'm calling this one "_filter_test_dir".
This unfortunately makes the "test" and "scratch" functions have
different naming conventions, but I guess we should be accustomed to
that by now (consider "TEST_DIR" and "SCRATCH_MNT").
Signed-off-by: Alex Elder <aelder@sgi.com> Reviewed-by: Christoph Hellwig <hch@lst.de>
Alex Elder [Thu, 21 Oct 2010 19:00:08 +0000 (19:00 +0000)]
xfstests: use a common _filter_scratch function
There are a number of tests that use a shell function called
"filter_scratch" or "_filter_scratch" in order to have the actual
scratch device or mount point show up in test output with a symbolic
name. There are two sets, each following a slightly different
convention. Put a common _filter_scratch function definition in
"common.filter" and have all test scripts use that instead.
Choosing one of the two conventions meant that a few test output
files had to be changed.
In addition, add a call to _filter_scratch to test 185, and update
its output accordingly.
Signed-off-by: Alex Elder <aelder@sgi.com> Reviewed-by: Christoph Hellwig <hch@lst.de>
Add a new helper to check if extended attributes are supported. It
errors out if any of the attr tools are not found, or if a filesystem
does not support setting attributes.
Remove the opencoded checks for the attr tools from various tests
now that we do them in common code.
Signed-off-by: Christoph Hellwig <hch@lst.de> Reviewed-by: Alex Elder <aelder@sgi.com>
Even if the kernel has quota support built in most filesystems still
don't support it. As there's no good way to find out if a filesystem
supports quotas hardcode the list of filesystems that do support
quotas.
Signed-off-by: Christoph Hellwig <hch@lst.de> Reviewed-by: Alex Elder <aelder@sgi.com>
Skip ACL tests if we get EOPNOTUPP back from the acl calls. This is
the error code we get on a kernel that does support the xattr system
calls, but does not support the attributes used to handle Posix ACLs.
Signed-off-by: Christoph Hellwig <hch@lst.de> Reviewed-by: Alex Elder <aelder@sgi.com>
Alex Elder [Thu, 14 Oct 2010 14:51:01 +0000 (14:51 +0000)]
xfstests: randholes: a few final cleanups
Minor bits to wrap up this series.
- Bumped up the number of blocks read at once from 10 to 256
- Shorten remaining long lines
- Re-factor findblock()
- Get rid of global variable "nvalid"
- Add a few more comments
- Give all global symbols static scope
- Update the copyright message
- Various other minor formatting changes.
Signed-off-by: Alex Elder <aelder@sgi.com> Acked-by: Dave Chinner <david@fromorbit.com>
Alex Elder [Thu, 14 Oct 2010 14:50:57 +0000 (14:50 +0000)]
xfstests: randholes: encapsulate argument parsing
Move the argument parsing code out of main() and into a separate
parseargs() routine. The name of the target file for the test
is returned by parseargs() if no error occurs.
Signed-off-by: Alex Elder <aelder@sgi.com> Acked-by: Dave Chinner <david@fromorbit.com>
Alex Elder [Thu, 14 Oct 2010 14:50:51 +0000 (14:50 +0000)]
xfstests: randholes: clean up readblks()
Make readblks() a bit more readable by computing a few things
into local variables, and pulling out a few of the comma-separated
expressions that were previously in the for loop headers.
Signed-off-by: Alex Elder <aelder@sgi.com> Acked-by: Dave Chinner <david@fromorbit.com>
Encapsulate the code that sets up the use of files on the realtime
volume. Using realtime implies direct I/O; move the code that makes
that so into the argument parsing code.
Signed-off-by: Alex Elder <aelder@sgi.com> Acked-by: Dave Chinner <david@fromorbit.com>
Alex Elder [Thu, 14 Oct 2010 14:50:08 +0000 (14:50 +0000)]
xfstests: randholes: rearrange fns and drop their declarations
Rearrange the functions in the file so they no longer need to be
declared at the top. (This change involves only wholesale moves
of these blocks of code.)
Signed-off-by: Alex Elder <aelder@sgi.com> Acked-by: Dave Chinner <david@fromorbit.com>
Alex Elder [Thu, 14 Oct 2010 14:49:52 +0000 (14:49 +0000)]
xfstests: randholes: only allocate write buffer when needed
If nothing is being written (i.e., in "test" mode), there's no need
for "randholes" to allocate a write buffer. But to do this we make
this series of changes:
- When "very" verbose (> 1), there's no point in printing the values
that have just been written to the file. They are just the file
offset, and the buffer will not have changed between initializing
those values and writing it out.
- If we don't print the values at those offsets, then there's no
need to fill them in at all when we're in test mode.
- Now we only use the write buffer if we're not in test mode,
so we can skip the allocation.
Signed-off-by: Alex Elder <aelder@sgi.com> Acked-by: Dave Chinner <david@fromorbit.com>
Alex Elder [Thu, 14 Oct 2010 14:49:43 +0000 (14:49 +0000)]
xfstests: randholes: Fix two bugs
This patch fixes two bugs in the "randholes" test program.
First, it is possible for findblock() to return -1 if the random
block number it picks is at or above the highest in-range block
that's already been selected. But this case isn't checked and
the value is blindly used thereafter as if it were valid. Just
exit if this ever occurs.
Second, when the "alloconly" option is is set, blocks are
preallocated in the target file rather than actually writing them.
But unlike when the blocks are written and subsequently read, the
preallocated blocks are *not* offset by the fileoffset parameter.
I'm pretty sure nobody every noticed this because the program itself
doesn't do any verification when blocks are only preallocated. But
it's an inconsistency and I think it ought to be fixed.
Signed-off-by: Alex Elder <aelder@sgi.com> Acked-by: Dave Chinner <david@fromorbit.com>
Alain Renaud [Thu, 7 Oct 2010 22:22:55 +0000 (17:22 -0500)]
xfstests: Fix some file permission.
I notice that some of the test script do not have execute
permission. To be consistent I changed the permissions to be 755.
Can someone verify that this is valid.
Thanks.
Signed-off-by: Alain Renaud <arenaud@sgi.com> Signed-off-by: Alex Elder <aelder@sgi.com>
Alain Renaud [Fri, 1 Oct 2010 13:09:33 +0000 (13:09 +0000)]
xfstests: make 223 use more compatible indirection operator
Hello all,
I notice while running xfstests on SLES machine that the test 223 fail
because of syntax error.
# bash 223
QA output created by 223
223: line 66: syntax error near unexpected token `>'
223: line 66: ` _scratch_mkfs_geom $SUNIT_BYTES 4 $BLOCKSIZE&>> $seq.full'
The error is due to the use of the '&>>' operator for redirection
that does not work on older bash version(3.2.x). Note that this
operator only seem to work with bash version 4.X+
This patch simply replace the operator with '>> $seq.full 2>&1'
which does the same thing.
Signed-off-by: Alain Renaud <arenaud@sgi.com> Signed-off-by: Alex Elder <aelder@sgi.com>
xfstests: test 244 to test quota project id setting overflow
Test 3 quota project setting id conditions:
- set 16bit project quota id -> should succeed
- set 32bit project quota id -> should succeed (with projid32bit
patch applied; fail otherwise)
- over 32bit project quota id -> should always fail
Updated by <aelder@sgi.com>:
- Shortened some long lines, including failure output
Signed-off-by: Arkadiusz Miśkiewicz <arekm@maven.pl> Signed-off-by: Alex Elder <aelder@sgi.com>
Project quota check in few tests should check SCRATCH_DEV and not
TEST_DEV. Fix that by making possible to pass device to be checked to
_require_prjquota().
Due to the problem tests didn't run with "Installed kernel does not
support project quotas" error.
Signed-off-by: Arkadiusz Miśkiewicz <arekm@maven.pl> Signed-off-by: Christoph Hellwig <hch@lst.de>
xfstests 243: Test to ensure that the EOFBLOCK_FL gets set/unset correctly.
As found by Theodore Ts'o:
If a 128K file is falloc'ed using the KEEP_SIZE flag, and then
write exactly 128K, the EOFBLOCK_FL doesn't get cleared correctly.
This is bad since it forces e2fsck to complain about that inode.
If you have a large number of inodes that are written with fallocate
using KEEP_SIZE, and then fill them up to their expected size,
e2fsck will potentially complain about a _huge_ number of inodes.
This would also cause a huge increase in the time taken by e2fsck
to complete its check.
Test scenarios covered:
1. Fallocating X bytes and writing Y (Y<X) (buffered and direct io)
2. Fallocating X bytes and writing Y (Y=X) (buffered and direct io)
3. Fallocating X bytes and writing Y (Y>X) (buffered and direct io)
These test cases exercise the normal and edge case conditions using
falloc (and KEEP_SIZE).
Alex Elder [Mon, 2 Aug 2010 17:51:00 +0000 (17:51 +0000)]
xfstests: update README file to document some recent changes
Update the README file to document the new _cat_passwd and
_cat_group functions, and to recommend passing "-n" to
getfacl(1) so it produces numeric output.
Signed-off-by: Alex Elder <aelder@sgi.com> Reviewed-by: Christoph Hellwig <hch@lst.de>
Eric Sandeen [Fri, 20 Aug 2010 19:27:07 +0000 (14:27 -0500)]
xfstests 228: suppress core dump message
When running 228 with abrt on in rhel6, I was getting different
output due to a (core dumped) message on SIGXFSZ. For some reason
I wasn't able to use sed to filter it, and just ulimit -c 0 didn't
suppress it either.
which apparently allows core dumps even if ulimit -c is 0, due
to the pipe.
Temporarily changing the kernel's core pattern to just plain "core"
and setting ulimit -c to 0 does suppress it. These are reset to
original values after the test is run.
Signed-off-by: Eric Sandeen <sandeen@sandeen.net> Reviewed-by: Christoph Hellwig <hch@lst.de>
Dave Chinner [Fri, 13 Aug 2010 05:45:24 +0000 (15:45 +1000)]
xfstests: fix NIS detection damage
NIS detection wasn't tested on machines without NIS enabled, so many tests are
failing on non-NIS machines. the _yp_active function has no specific return
value so always evaluates as 0 (active) and the "_cat_passwd" function is
called from within an awk script which is not valid as the shell may run with a
sanitised environment. Hence the functions do not need specific export calls,
either, as unsanitised subshells will automatically inherit the parent's
environment.
Signed-off-by: Dave Chinner <dchinner@redhat.com> Reviewed-by: Christoph Hellwig <hch@lst.de>
Alex Elder [Fri, 30 Jul 2010 21:49:48 +0000 (21:49 +0000)]
xfstests: fix depend targets
There's no need to re-make the dependency files all the time. Make
it so the "depend" target rebuilds the ".dep" file only if necessary.
Also change the name of the dependency file created for "ltdepend"
to be ".ltdep".
Signed-off-by: Alex Elder <aelder@sgi.com> Reviewed-by: Dave Chinner <dchinner@redhat.com>
Alex Elder [Fri, 30 Jul 2010 21:54:23 +0000 (21:54 +0000)]
xfstests: have getfacl(1) report numeric id's
This patch arranges for calls to getfacl(1) to be given the "-n"
flag, which requests that user and group id's be listed numerically
rather than using names. The affected test output files are also
updated to indicate the effect of the change.
This eliminates some spurious output differences I was seeing, due
to the presence of NIS in my test environment.
Signed-off-by: Alex Elder <aelder@sgi.com> Reviewed-by: Christoph Hellwig <hch@lst.de>
Alex Elder [Fri, 30 Jul 2010 21:52:39 +0000 (21:52 +0000)]
xfstests: include NIS databases
If NIS is active on a test target system, additional password and
group file information is available via their respective databases
in NIS. Currently, some tests assume that /etc/passwd and /etc/group
are the only places to find this information.
This patch causes both the local database and the NIS database (if
one is likely to be present) to be consulted for needed information.
Signed-off-by: Alex Elder <aelder@sgi.com> Reviewed-by: Christoph Hellwig <hch@lst.de>
Eric Sandeen [Fri, 23 Jul 2010 16:18:59 +0000 (11:18 -0500)]
xfstests 240: test non-aligned AIO hole-filling
This replicates file corruption we've seen with qemu-kvm when
we use if=virtio,cache=none,aio=native for IO to a sparse
ext4- or xfs-hosted file, and the partitions/filesystems
within that file image are not block-aligned. (think sector
63 here...) This results in AIO IOs not aligned to the
filesystem blocks.
This test modifies aiodio_sparse2.c to add an option to start
the file IO at an offset.
When we do 4k writes to a 16k file in 2 threads, starting
at offset 512, we get 0s interspersed in the file where they
should not be:
Dave Chinner [Thu, 24 Jun 2010 22:25:56 +0000 (08:25 +1000)]
xfsqa: test 214 leaves files around that cause 236 to fail
Test 214 and 236 use the same file names for test files in the TEST
filesystem and don't check/create clean initial test state. Hence if
you run 214 then 236, 236 will fail with:
+link: cannot create link `/mnt/test/ouch2' to `/mnt/test/ouch': File exists
+ctime: 1277076527 -> 1277076527
+Fatal error: ctime not updated after link
Ensure that both tests clean up after themselves properly and also
ensure a clean state before they start.
Signed-off-by: Dave Chinner <dchinner@redhat.com> Reviewed-by: Christoph Hellwig <hch@lst.de>
Dave Chinner [Thu, 24 Jun 2010 22:26:25 +0000 (08:26 +1000)]
xfsqa: test open_by_handle() on unlinked and freed inode clusters
When Christoph and I were discussing bulkstat coherency on IRC, we
realised that inode lookup from bulkstat was not actually looking up
the inode allocation btree in xfs_imap() before reading the inode
buffer from disk in xfs_iread(). Bulkstat uses the same lookup
mechanism as handle validation to avoid shutting down the filesystem
if inode numbers that point to non-inode buffers (i.e. invalid) are
passed in the handle.
The problem with this is that when we delete inodes from disk and we
remove the inode chunk (i.e. deallocate inodes) we mark both the
inodes in memory and the cluster buffer as stale, thereby preventing
it from being written back to disk. The result of this is that some
number of inodes remain on disk looking like allocated, in use
inodes (i.e. di_mode is not zero).
Hence if we get a cold cache lookup from a stale handle that
references such an inode, we can read the inode off disk even though
it has been deleted because we don't check if the inode is allocated
or not. If the inode chunk has not been overwritten, then the inode
read will succeed and the handle-to-dentry conversion will not error
out like it is supposed to. The result is that stale NFS filehandles
and open_by_handle() will succeed incorrectly on unlinked files for
cold cache lookups.
This is a bug that has been present ever since the inode chunk
deletion code was implemented. This test exercises the problem and
documents the hoops you have to jump through to reproduce it.
Signed-off-by: Dave Chinner <dchinner@redhat.com> Reviewed-by: Christoph Hellwig <hch@lst.de>
Alex Elder [Wed, 19 May 2010 22:44:14 +0000 (22:44 +0000)]
xfstests: 226: have xfs_io use bigger buffers
By default xfs_io uses a buffer size of 4096 bytes. On test 226,
the result is that the test runs much slower (at least an order
of magnitude) than it needs to.
Add a flag to the "pwrite" command sent to xfs_io so it uses
larger buffers, thereby speeding things up considerably.
Signed-off-by: Alex Elder <aelder@sgi.com> Reviewed-by: Eric Sandeen <sandeen@sandeen.net>
Jan Kara [Mon, 24 May 2010 09:46:44 +0000 (11:46 +0200)]
Fix fallocate() test
The test for fallocate was broken because it used $TEST_DIR/$tmp.io. Because
$tmp is usually something like /tmp/1234 or /mnt/1234 the file cannot be
created and xfs_io fails regardless of existance of fallocate support. Moreover
the subsequent message parsing decides that fallocate is actually supported
because it does not expect this message.
Jan Kara [Wed, 19 May 2010 09:25:52 +0000 (11:25 +0200)]
Fix test whether kernel supports quotas
For all 2.6 kernels presence of quota support in kernel can be detected by
checking /proc/sys/fs/quota. This is actually more reliable than trying to
mount a filesystem with quota options (for example because SCRATCH_DEV does
not have to contain a filesystem type we are going to test).
Alex Elder [Thu, 6 May 2010 17:26:07 +0000 (17:26 +0000)]
xfstests: honor comments in the test group file
There are some spots in the "group" file where test numbers have
groups listed after a '#' character, clearly intending for those
groups to be commented out. But the way the group list gets
generated that commenting doesn't work, and in fact these tests
explicitly *are* included in such commented-out groups.
This patch fixes that, stripping out all comments (which start
with a '#' character and end with a newline) from the file before
building the set of test numbers for a group.
Signed-off-by: Alex Elder <aelder@sgi.com> Reviewed-by: Christoph Hellwig <hch@lst.de>
Amit Arora [Wed, 5 May 2010 19:15:08 +0000 (14:15 -0500)]
xfstests 228: New testcase to check if fallocate respects RLIMIT_FSIZE
Add a new testcase to the xfstests suite to check if fallocate respects
the limit imposed by RLIMIT_FSIZE (can be set by "ulimit -f XXX") or
not, on a particular filesystem.
Signed-off-by: Amit Arora <aarora@in.ibm.com> Signed-off-by: Eric Sandeen <sandeen@sandeen.net> Reviewed-by: Eric Sandeen <sandeen@sandeen.net>
Tao Ma [Tue, 4 May 2010 06:01:00 +0000 (16:01 +1000)]
xfstests: Add query fiemap count test.
According to Documentation/filesystems/fiemap.txt, If fm_extent_count
is zero, then the fm_extents[] array is ignored (no extents will be
returned), and the fm_mapped_extents count will hold the number of
extents needed.
Dave Chinner [Tue, 4 May 2010 06:01:26 +0000 (16:01 +1000)]
xfsqa: build dbtest on debian platforms
Set up autoconf to find the correct headers and compat libraries for
debian squeeze, and massage the includes to ensure the right headers get
included. Also fix a compile warning that was emitted now that it is being
compiled.
Signed-off-by: Dave Chinner <david@fromorbit.com> Reviewed-by: Christoph Hellwig <hch@lst.de>
Dave Chinner [Tue, 4 May 2010 06:01:36 +0000 (16:01 +1000)]
xfsqa: keep xfs_fsr output around in test 222
To confirm that xfs_fsr is doing the right thing, make it output debug
and verbose messages and store them in the 222.full file so that it
can be checked after the fact for correct operation.
Signed-off-by: Dave Chinner <dchinner@redhat.com> Reviewed-by: Christoph Hellwig <hch@lst.de>
Dave Chinner [Tue, 4 May 2010 06:01:47 +0000 (16:01 +1000)]
xfsqa: clean up 030 repair output
With the new checks in xfs_repair, it outputs more information
about errors found than previously. This new output can be ignored
for the purposeѕ of this test, so filter it all out. This will
allow the test to run on new and old reapir binaries.
Signed-off-by: Dave Chinner <david@fromorbit.com> Reviewed-by: Christoph Hellwig <hch@lst.de>
Dave Chinner [Wed, 28 Apr 2010 05:34:06 +0000 (15:34 +1000)]
xfsqa: new fsr defragmentation test
This test aims to recreate the conditions that caused xfs_fsr to
corrupt inode forks. The problem was that the data forks between the
two inodes were in different formats due to different inode fork
offsets, so when they swapped the data forks the formats were
invalid.
This test generates a filesystem with a known fragmented freespace pattern and
then abuses known "behaviours" of the allocator to generate files
with a known number of extents. It creates attributes to generate a
known inode fork offset, then uses a debug feature of xfs_fsr to
attempt to defrag the inode to a known number of extents.
By using these features, we can pretty much cover the entire matrix of inode
fork configurations, hence reproducing the conditions that lead to corruptions.
This test has already uncovered one bug in the current kernel code, and the
current fsr (with it's naive attribute fork handling) is aborted on a couple of
hundred of the files created by this test.
The -s option to repquota used to be a no-op, but actually changes
output to different units in quota tools 4.0. Remove it from the
repquota invocation in test 219.
Signed-off-by: Christoph Hellwig <hch@lst.de> Reviewed-by: Eric Sandeen <sandeen@sandeen.net> Tested-by: "Theodore Ts'o" <tytso@mit.edu>
Dave Chinner [Sat, 6 Mar 2010 00:25:10 +0000 (11:25 +1100)]
xfsqa: define resblks for tests near ENOSPC
Several tests assume a certain amount of disk space free after the
reserve block pool is filled. Changing the default size of the
reserve block pool breaks these tests because there is less space
available that first thought.
Change these tests to specify a known reserve block pool size of
1024 blocks to ensure that they continue to work correctly even if
the default size changes.
Signed-off-by: Dave Chinner <david@fromorbit.com> Reviewed-by: Christoph Hellwig <hch@lst.de>
Eric Sandeen [Sat, 6 Mar 2010 00:24:54 +0000 (11:24 +1100)]
xfsqa: Add fiemap exerciser
Preliminary fiemap testing support based on a test util written by
Josef Bacik.
For now it's only run with preallocation disabled, because xfs has a
tendency to fill in holes with data blocks (EOF prealloc stuff I
think) and similar for explicit preallocation, so this is breaking
the preallocation tests for now, when it finds a "data" block where
it expects a preallocated block.
Signed-off-by: Eric Sandeen <sandeen@redhat.com> Reviewed-by: Dave Chinner <dchinner@redhat.com> Reviewed-by: Christoph Hellwig <hch@lst.de>
Dave Chinner [Sat, 6 Mar 2010 00:24:38 +0000 (11:24 +1100)]
xfsqa: fix size specification for scratch mkfs
When making a specifically sized scratch filesystem, we need to
calculate the size rather than assigning the caclculation expression
to a variable and passing that into the _scratch_mkfs_sized
function. Currently sized filesystems are failing to be made and the
code is falling back to full sized filesystems so we are not testing
enospc issues correctly.
Dave Chinner [Sat, 6 Mar 2010 00:22:58 +0000 (11:22 +1100)]
xfsqa: add delayed allocation @ ENOSPC exerciser
When we deplete the reserve block pool or receive an error during
delayed allocation, we currently toss the page away. If that page
has delayed allocation extents on it, we can fail to remove them and
leave stale delayed llocation extents lying around on the inode.
This can, in certain circumstances, trigger errors later on when the
stale delalloc extent it found again, including tripping a BUG().
Exercise this failure path so that we get code coverage of the fix
that prevents stale delalloc mappings from being left on the inode
when pages are tossed.
This is based on a test case supplied by Lachlan McIlroy.
Signed-off-by: Dave Chinner <dchinner@redhat.com> Reviewed-by: Christoph Hellwig <hch@lst.de>
Recent fixes to 073 added umount -d, but if we happen
to be using a scratch device on loopback, subsequent
tests get very, very unhappy when their loopback block
device goes away!
Signed-off-by: Eric Sandeen <sandeen@redhat.com> Reviewed-by: Christoph Hellwig <hch@lst.de>
blkid without options usually gets no probe results at all just after
creating a filesystem. This problem is due to the cache that blkid
uses in it's default mode, and is unlikely to get fixed. Use the -p
option to bypass the cache layer.
Signed-off-by: Christoph Hellwig <hch@lst.de> Reviewed-by: Dave Chinner <david@fromorbit.com>
Alex Elder [Wed, 3 Feb 2010 19:54:04 +0000 (19:54 +0000)]
xfstests: 219: fix awk filter for duplicate users
The filter I added for removing duplicate users from the
output of repquota didn't do the job very well. This
fixes that, making it so the first time a user is seen
its line is printed, not thereafter.
Signed-off-by: Alex Elder <aelder@sgi.com> Reviewed-by: Christoph Hellwig <hch@lst.de>
Eric Sandeen [Tue, 9 Feb 2010 17:59:23 +0000 (11:59 -0600)]
xfstests: fix up fs_perms test used by 126
Test 126 was failing intermittently for Ted & I; it seems that
this is because we were passing an unterminated string to
fopen for the mode; I'm not certain why this made it fail,
but it's pretty clearly not a good thing to do, and fixing
it fixes the test.
Rather than passing around characters, do things string-wise,
since that is what is ultimately used in fopen().
Reported-by: Theodore Tso <tytso@mit.edu> Signed-off-by: Eric Sandeen <sandeen@sandeen.net> Reviewed-by: Christoph Hellwig <hch@lst.de>