Added a new command line parameter (-i or --image=) that allows rbd-fuse...
Reviewed-by: Josh Durgin <josh.durgin@inktank.com>
Reviewed-by: Sage Weil <sage@inktank.com>
This is useful for qemu to guarantee live migration with caching is
safe, by invalidating the cache on the destination before starting it.
Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
This will only happen when shrinking or rolling back an image is done
while other I/O is in flight to the same ImageCtx. This is unsafe, so
return an error before performing the resize or rollback.
Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
the mount directory. The purpose of this is to allow a single RBD to be "mounted" in userspace without opening (and locking)
the other RBDs in the pool.
This is accomplished by performing a case-sensitive string compare in enumerate_images() when an image name is
specified on the command line. If no image name is specified, all images appear in the mount directory. If a non-existent
image name is specified, the mount directory is empty.
Signed-off-by: Stephen F Taylor <steveftaylor@gmail.com>
Fixes: #8202
This fixes the radosgw side of issue #8202. Needed to cast value
to unsigned char, otherwise it'd get padded.
Backport: dumpling
Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
...so that they pass when they get unlucky with thrashing.
This will vastly decrease the probability of failure, but failure will
always be possible when a timeout is in place.
Fixes: #8193
Signed-off-by: Sage Weil <sage@inktank.com>
When a pool is created with ceph osd pool create, the auid is not
inferred from the session auid and is set to zero. Add the
ceph osd pool set <pool> auid <int>
command to set it after it is created, and the matching get:
ceph osd pool get <pool> auid
Signed-off-by: Loic Dachary <loic@dachary.org>
Modified qemu-iotests workunit script to check for versions
that use the latest qemu (currently only Trusty). Limit the
tests to those that are applicable to rbd.
Fixes: 7882
Signed-off-by: Warren Usui <warren.usui@inktank.com>
Waiting for udev has been the default for a while now, and, after
switching to libkrbd, is no longer an option. (libkrbd waits for
specific devices to show up, the old behaviour was to wait for
everything udev.)
Signed-off-by: Ilya Dryomov <ilya.dryomov@inktank.com>
rbd binary will load rbd.ko itself, with appropriate options. Loading
it by hand with default options is undesirable.
Signed-off-by: Ilya Dryomov <ilya.dryomov@inktank.com>
Thanks to libkrbd, 'rbd map' now outputs the device node it mapped to
to stdout:
$ sudo rbd map foo
/dev/rbd0
This will allow us to get rid of a lot of ad-hoc poll/sleep code in our
qa scripts.
Signed-off-by: Ilya Dryomov <ilya.dryomov@inktank.com>
Add libkrbd libtool convenience library to provide an interface for
mapping and unmapping rbd images programmatically. This will be used
by the rbd binary itself and the librbd_fsx testing tool.
libkrbd takes care of the kernel module stuff (common/module.h) and
makes use of libudev to be able to properly wait for block device
creation and deletion and tell which block device got assigned by the
kernel to the newly created mapping.
Signed-off-by: Ilya Dryomov <ilya.dryomov@inktank.com>
handle following sequence of events:
- mds0 exports an inode to mds1. client receives the cap import
message from mds1. caps from mds0 are removed while handling
the cap import message.
- mds1 exports an inode to mds0. client receives the cap export
message from mds1. handle_cap_export() adds placeholder caps
for mds0
- client receives the first cap export message (for exporting
inode from mds0 to mds1)
Signed-off-by: Yan, Zheng <zheng.z.yan@intel.com>
To avoid releasing caps that are being used, encode_inode_release()
should send implemented caps to MDS.
Signed-off-by: Yan, Zheng <zheng.z.yan@intel.com>