rbd: support for object-map and fast-diff
authorIlya Dryomov <idryomov@gmail.com>
Wed, 5 Jun 2019 17:25:11 +0000 (19:25 +0200)
committerIlya Dryomov <idryomov@gmail.com>
Mon, 8 Jul 2019 12:01:45 +0000 (14:01 +0200)
commit22e8bd51bb0469d1a524130a057f894ff632376a
tree1cf2eaf3fac621e7154f58a7915e94db5851744e
parentda5ef6be3467eb2d293790dea69b5b562490715a
rbd: support for object-map and fast-diff

Speed up reads, discards and zeroouts through RBD_OBJ_FLAG_MAY_EXIST
and RBD_OBJ_FLAG_NOOP_FOR_NONEXISTENT based on object map.

Invalid object maps are not trusted, but still updated.  Note that we
never iterate, resize or invalidate object maps.  If object-map feature
is enabled but object map fails to load, we just fail the requester
(either "rbd map" or I/O, by way of post-acquire action).

Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
drivers/block/rbd.c
drivers/block/rbd_types.h
include/linux/ceph/cls_lock_client.h
include/linux/ceph/striper.h
net/ceph/cls_lock_client.c
net/ceph/striper.c