In case need_stats is set on rgw_read_user_buckets() and the
update_containers_stats() call fails with !-ENOENT, not only
print out a message but also return the error to the function
caller.
Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
[src/mds/SimpleLock.h:287]: (warning) Comparison of a boolean value
using relational operator (<, >, <= or >=).
Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
[src/os/KeyValueStore.h:368] -> [src/os/ObjectStore.h:100]: (warning) The class
'KeyValueStore' defines member variable with name 'logger' also defined in its
parent class 'ObjectStore'.
KeyValueStore logger is of type PerfCounters while ObjectStore logger is Logger.
Change the name in KeyValueStore to more obvious name perf_logger.
Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
When the rename target dentry is NULL, we can use MDentryLink messages
instead of slave requests to update its replicas.
Signed-off-by: Yan, Zheng <zheng.z.yan@intel.com>
Anchor table was the main user of MDCache::discover_ino(), it has
been removed. MDCache::discover_path() can replace discover_ino()
in remaining places. This patch removes discover ino related code.
Signed-off-by: Yan, Zheng <zheng.z.yan@intel.com>
Under rbd usage, if a volume has tens of thousands of objects and each 4M
object only has several KB(run fio on this volume or other cases), this volume
will be very low performance during a long time after create snapshot on
this volume. The OSD will be busy with large bandwidth read/write although
the object actually has few bytes needed to be copied.
This commit try to use fiemap if backend fs support, it can skip unnecessary
range to write. It also can be beneficial to space effective, because the copied
object will be regard as snapshot object which is access infrequently.
Signed-off-by: Haomai Wang <haomaiwang@gmail.com>
Reviewed-by: Sage Weil <sage@inktank.com>
Reviewed-by: Josh Durgin <josh.durgin@inktank.com>
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>