Test 232 in the xfstests suite produces an XFS error in the log
when run over an RBD device. This is most likely an XFS problem
that will be tracked separately (in tracker 2302).
My original plan with getting this checked in was to have it run a
baseline set of the tests--all known to pass on rbd devices--with
the intention of doing ongoing work to add back missing tests (at
least from the "auto" group) as we understand and fix whatever
makes them produce failures.
So just comment out test 232 so the xfstests script is able to
run to completion without error.
Signed-off-by: Alex Elder <elder@dreamhost.com>
We had an issue where we didn't call it since we relied on the
existance of the object name and we were passed an empty one.
However, we still need to handle the case of list_objects, where
we don't want to recalc pgid.
Signed-off-by: Yehuda Sadeh <yehuda@hq.newdream.net>
Use object rather than collection check in COLL_REMOVE. Adjust
COLL_MOVE check for -1/1 distinction.
Signed-off-by: Samuel Just <samuel.just@dreamhost.com>
Because we exit on any error (due to 'set -e'), the cleanup call was
never getting made in the event of an error. The net effect of that
was that a filesystem could be left mounted, and rbd cleanup then
couldn't complete because the module was in use.
Fix the trap call so it calls cleanup on exit as well as error.
Switch to using the capitalized signal names in the call.
Signed-off-by: Alex Elder <elder@dreamhost.com>
It turns out that xfstests *does* exit with non-zero status
when a test fails. Its exit status is the number of tests
that failed (which, now that we have over 255 tests could be
an issue...)
Save the exit status and make it be the result of the run.
Signed-off-by: Alex Elder <elder@dreamhost.com
Some of the ObjectCacher functions were separate, which works poorly
if you're trying to do things like use ldout.
Signed-off-by: Greg Farnum <gregory.farnum@dreamhost.com>
Add a script that runs xfstests over a pair of devices that are
specified using command line arguments. The tests are run using
a specified filesystem type (xfs, ext4, or btrfs).
A default set of tests is run if none is specified on the command
line. Normally there's an "auto" group used for this purpose, but
for now I've laid out a (large) subset of them that I know pass on
rbd devices. These can be updated as we find they work reliably.
Signed-off-by: Alex Elder <elder@dreamhost.com>
Implement sync and async discard. Embed an ObjectWriteOperation in the
BlockCompletion struct.
The sync version does a sync op on every block, just like write()... very
stupid. Both of these should fixed.
Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
This makes sure the state is as consistent as librbd can make it
before the snapshot is actually created.
Signed-off-by: Josh Durgin <josh.durgin@dreamhost.com>
The GatherBuilder used later always deletes it. To make
the interface sane, delete it in every return path.
Signed-off-by: Josh Durgin <josh.durgin@dreamhost.com>