Hi Ilya,
On 06/25/2019 10:40 PM, Ilya Dryomov wrote:
Hello,
This series adds support for object-map and fast-diff image features.
Patches 1 - 11 prepare object and image request state machines; patches
12 - 14 fix most of the shortcomings in our exclusive lock code, making
it suitable for guarding the object map; patches 15 - 18 take care of
the prerequisites and finally patches 19 - 20 implement object-map and
fast-diff.
Nice patchset. I did review and a testing for this patchset.
TEST:
with object-map enabled, I found a case failed:
tasks/rbd_kernel.yaml.
It failed to rollback test_img while test_img is mapped.
Thanx
Thanks,
Ilya
Ilya Dryomov (20):
rbd: get rid of obj_req->xferred, obj_req->result and img_req->xferred
rbd: replace obj_req->tried_parent with obj_req->read_state
rbd: get rid of RBD_OBJ_WRITE_{FLAT,GUARD}
rbd: move OSD request submission into object request state machines
rbd: introduce image request state machine
rbd: introduce obj_req->osd_reqs list
rbd: factor out rbd_osd_setup_copyup()
rbd: factor out __rbd_osd_setup_discard_ops()
rbd: move OSD request allocation into object request state machines
rbd: rename rbd_obj_setup_*() to rbd_obj_init_*()
rbd: introduce copyup state machine
rbd: lock should be quiesced on reacquire
rbd: quiescing lock should wait for image requests
rbd: new exclusive lock wait/wake code
libceph: bump CEPH_MSG_MAX_DATA_LEN (again)
libceph: change ceph_osdc_call() to take page vector for response
libceph: export osd_req_op_data() macro
rbd: call rbd_dev_mapping_set() from rbd_dev_image_probe()
rbd: support for object-map and fast-diff
rbd: setallochint only if object doesn't exist
drivers/block/rbd.c | 2433 ++++++++++++++++++--------
drivers/block/rbd_types.h | 10 +
include/linux/ceph/cls_lock_client.h | 3 +
include/linux/ceph/libceph.h | 6 +-
include/linux/ceph/osd_client.h | 10 +-
include/linux/ceph/striper.h | 2 +
net/ceph/cls_lock_client.c | 47 +-
net/ceph/osd_client.c | 18 +-
net/ceph/striper.c | 17 +
9 files changed, 1817 insertions(+), 729 deletions(-)