Jason Dillaman [Fri, 10 Apr 2015 16:37:05 +0000 (12:37 -0400)]
librbd: failure to update the object map should always return success
If an object map update fails, the object map will be flagged as
invalid. However, if a subsequent update failure occurs, the error
code will propagate back to the caller.
Fixes: #11369 Signed-off-by: Jason Dillaman <dillaman@redhat.com>
Jason Dillaman [Fri, 6 Mar 2015 20:40:48 +0000 (15:40 -0500)]
tests: librados_test_stub reads should deep-copy
If a client of librados_test_stub modified a bufferlist
retrieved via a read call, the client will actually be
changing the contents of the file. Therefore, read calls
should deep-copy the contents of the buffer::ptrs.
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
Fix to some of the command line parsing (including rbd)
Fix#: 2862
Changes to some of the common files for command line parsing
Change to ceph_argparse.cc
-------------------------
Added function ceph_arg_value_type()
Given an input it will determine
i) If that input is an option or not
ii) If input is numeric in nature or not.
It will set the flag bool_option and bool_numeric appropriately.
This function is called by ceph_argparse_witharg() to figure out if
the input parameter to those functions are numeric in nature and not
an option. If the input parameter to ceph_argparse_witharg()
happens to be an option then it implies that user didn't supply
value to the option.
Changes to strol.cc
-------------------
Changes to strict_strtoll() and strict_strtol()
Both these functions reponsibility is to convert the string to long or to int.
I felt it may be not be good for it to display error message within this function,
rather caller of this function who has better understanding of the function's purpose
can display the error message.
Made change in this function to just create a generic error message,Its the
caller of this function decides what to do with this message.
Douglas Fuller [Mon, 6 Apr 2015 21:36:18 +0000 (14:36 -0700)]
RBD: update expunge set for latest test, parameterize test script
Update expunge set for xfstests to known-good set for RHEL7 and Ubuntu 14.04.
Expunged tests without justifying comments are long-running and have not yet
been thoroughly investigated.
Add an environment variable (optionally passed from xfstests_url variable in
test YAML) to override the default xfstests repo.
Signed-off-by: Douglas Fuller <dfuller@redhat.com>
Douglas Fuller [Mon, 6 Apr 2015 21:35:20 +0000 (14:35 -0700)]
RBD: build prerequisites for latest xfstests and update test configuration
To standardize results from xfstests, install specific versions of xfstests,
xfsprogs, and xfsdump in /tmp. Move test mountpoints to /tmp/cephtest to allow
access for fsgqa user expected by xfstests.
XXX: xfsdump required significant hacks to build and install on Ubuntu 14.04.
A developer removed the definitions of the min and max macros; this commit is
reverted by this script. The installation paths are difficult to override and
the installer breaks (trying to ln one of the binaries to itself) when an
alternate installation location is specified. This script ignores this error
(make -k install || true).
Signed-off-by: Douglas Fuller <dfuller@redhat.com>
Jason Dillaman [Tue, 7 Apr 2015 19:39:13 +0000 (15:39 -0400)]
librbd: moved snap_create header update notification to initiator
When handling a proxied snap_create operation, the client which
invoked the snap_create should send the header update notification
to avoid a possible race condition where snap_create completes but
the client doesn't see the new snapshot (since it didn't yet receive
the notification).
Fixes: #11342 Signed-off-by: Jason Dillaman <dillaman@redhat.com>
Moved all parent overlap computation to within AioRequest so that
callers don't need to independently compute the overlap. Also
removed the need to pass the snap_id for write operations since
it can only be CEPH_NOSNAP.
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
* and remove `local-check` target. because we have killed all warnings,
and `make check` depends on `am-all` actually. so previously, `make check`
basically does nothing at all for validating the man pages' syntax.
`make all` has rendered them already.
* do not run sphinx-build if $(top_srcdir)/doc/man does not exist. this
is exactly the case of `make install` from a dist tarball.
* remove generated man pages in `make maintainer-clean` not in `make
clean`, because we don't ship .rst files in the dist tarball.
sphinx complains when it failed to find the referenced file using the
absolute path whose root is the $(top_srcdir)/doc/man when rendering
man pages. but it is able to find it when rendering the html, because
build-doc specifies $(top_srcdir)/doc/ as the source directory.
man: ignore fieldlist when getting desc for manpages
this change will enable us to specify `:orphan:` in the fieldlist of
a manpage rst file, otherwise sphinx-build complains at seeing it if
it is not referenced by a toc doc.
sphinx requires that a document tree to be in a single directory,
and the man pages are references by our document. so a simple solution
would be to put all the rst file under a single directory.
sphinx complains:
SEVERE: Duplicated ID: "cmdoption-radosgw-admin--bucket"
at seeing duplicated `--bucket` option in radosgw-admin.rst. and
there is a global `--bucket` for all commands of radosgw, so remove
the one for the `quota` command.
The docker image created by docker-tests.sh for a given operating system
is parameterized with the user name. If two users on the same machine
try to use the same image, they will compete and fail with an error
like:
... user get supplementary groups Unable to find user ...
Add the $USER to the image name to reflect the fact that they contain an
account for this user.
spec.in: sphinx -b man needs sphinx > 1.0 (part 2)
Instead of listing the operating system versions that do not require the
python-sphinx10 package, switch to listing the operating system versions that
require the python-sphinx10 package. It's easier to maintain because
there only are a few.
Zhiqiang Wang [Tue, 7 Apr 2015 05:43:36 +0000 (13:43 +0800)]
librbd: start readahead from m_last_pos when the size of the continuing
triggering request is big enough
If the size of the read triggering the continuing readahead is such big
that exceeding m_readahead_pos, should do the readahead starting from
m_last_pos.
Signed-off-by: Zhiqiang Wang <zhiqiang.wang@intel.com>
This can be done better in a separate script, which puts these in
CEPH_EXTRA_CONFIGURE_ARGS. In particular, this lets us enable
lttng for gitbuilder builds, but not release builds.
This can be done better in a separate script, which puts these in
CEPH_EXTRA_CONFIGURE_ARGS. In particular, this lets us enable
lttng for gitbuilder builds, but not release builds.