librbd: fix read_whole_object handling in ObjectListSnapsRequest
Originally, in commit
2be4840afd4f ("librados/snap_set_diff: don't
assert on empty snapset"), exists was set to true. This didn't make
ObjectListSnapsRequest, causing the following deep-copy tests to fail
when run against calc_snap_set_diff() rigged to return "whole object"
as described in [1]:
TestDeepCopy.Snaps
TestDeepCopy.SnapDiscard
TestDeepCopy.CloneHideParent
TestDeepCopy.Snaps_LargerDstObjSize
TestDeepCopy.Snaps_SmallerDstObjSize
This is a regression introduced in commit
cc87a8bd697e ("librbd:
deep-copy object utilizes image-extent IO methods") by way of commit
11923e234efc ("librbd: generic object list snapshot request").
[1] https://github.com/ceph/ceph/pull/20648#issuecomment-
369292309
Fixes: https://tracker.ceph.com/issues/63654
Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
(cherry picked from commit
0a1f633e0240b4a7cfbcddd96d53fbf4b17f0b28)