]> git.apps.os.sepia.ceph.com Git - ceph.git/commit
librbd: don't update snapshot object maps if copyup data is all zeros
authorIlya Dryomov <idryomov@gmail.com>
Mon, 22 Apr 2019 10:21:07 +0000 (12:21 +0200)
committerJason Dillaman <dillaman@redhat.com>
Sun, 18 Aug 2019 18:52:21 +0000 (14:52 -0400)
commit38c0216d837b4b06d85b49e263c47136fc77b05b
treed37aa5046cf9646b8c237894702830c91f1f9579
parent144e2f9c8bf0c6000dd5e045deb2fae2fb65e252
librbd: don't update snapshot object maps if copyup data is all zeros

If the data read from the parent is all zeros, deep copyup isn't
performed.  However snapshot object maps are updated unconditionally,
causing inconsistencies where nonexistent objects are marked
OBJECT_EXISTS or OBJECT_EXISTS_CLEAN.

Fixes: http://tracker.ceph.com/issues/39435
Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
(cherry picked from commit 4456dc3939816a8bcb36dfc771adb1c699b37b0f)
src/librbd/io/CopyupRequest.cc
src/librbd/io/CopyupRequest.h
src/test/librbd/test_internal.cc