]> git.apps.os.sepia.ceph.com Git - ceph.git/commit
librbd: support assembling sparse results of multiple object extents 37189/head
authorOr Ozeri <oro@il.ibm.com>
Wed, 16 Sep 2020 08:42:45 +0000 (11:42 +0300)
committerOr Ozeri <oro@il.ibm.com>
Mon, 5 Oct 2020 13:01:57 +0000 (16:01 +0300)
commit4f36d3e936e9d1e94a4821f3fc5e407dec20695d
tree0cbcad460c02fa1996a645981c8248040a468619
parent239c4bc8f3c14f892656264789217b6b80e12982
librbd: support assembling sparse results of multiple object extents

Currently, Striper supports assembling results representing a single object extent.
Recently, the object dispatch API was extended allowing to read multiple object extents per rados operation.
This commit enables the Striper to correctly un-sparsify the results of the new read extents API.

Signed-off-by: Or Ozeri <oro@il.ibm.com>
34 files changed:
src/librbd/cache/ObjectCacherObjectDispatch.cc
src/librbd/cache/ObjectCacherObjectDispatch.h
src/librbd/cache/ObjectCacherWriteback.cc
src/librbd/cache/ParentCacheObjectDispatch.cc
src/librbd/cache/ParentCacheObjectDispatch.h
src/librbd/cache/WriteAroundObjectDispatch.cc
src/librbd/cache/WriteAroundObjectDispatch.h
src/librbd/crypto/CryptoObjectDispatch.cc
src/librbd/crypto/CryptoObjectDispatch.h
src/librbd/io/ImageRequest.cc
src/librbd/io/ObjectDispatch.cc
src/librbd/io/ObjectDispatch.h
src/librbd/io/ObjectDispatchInterface.h
src/librbd/io/ObjectDispatchSpec.h
src/librbd/io/ObjectDispatcher.cc
src/librbd/io/ObjectRequest.cc
src/librbd/io/ObjectRequest.h
src/librbd/io/ReadResult.cc
src/librbd/io/ReadResult.h
src/librbd/io/SimpleSchedulerObjectDispatch.cc
src/librbd/io/SimpleSchedulerObjectDispatch.h
src/librbd/io/Types.h
src/librbd/io/Utils.cc
src/librbd/io/Utils.h
src/librbd/journal/ObjectDispatch.h
src/librbd/plugin/Api.cc
src/librbd/plugin/Api.h
src/osdc/Striper.cc
src/osdc/Striper.h
src/test/librbd/cache/test_mock_ParentCacheObjectDispatch.cc
src/test/librbd/crypto/test_mock_CryptoObjectDispatch.cc
src/test/librbd/io/test_mock_ObjectRequest.cc
src/test/librbd/io/test_mock_SimpleSchedulerObjectDispatch.cc
src/test/librbd/mock/io/MockObjectDispatch.h