]> git.apps.os.sepia.ceph.com Git - ceph.git/commit
osd/PrimaryLogPG: clear oi from trim_object() 15519/head
authorSage Weil <sage@redhat.com>
Mon, 12 Jun 2017 18:05:41 +0000 (14:05 -0400)
committerSage Weil <sage@redhat.com>
Mon, 12 Jun 2017 18:05:41 +0000 (14:05 -0400)
commitcd1271b4324431d16d3868a9f3b93cbefeeee057
tree59892f45c8ecab80bf0f6d07ac25b3e090d5e382
parentb4560572b2fbbfc5233c912d73185fc95e841cb5
osd/PrimaryLogPG: clear oi from trim_object()

trim_object() is unique in that its resulting OpContxtUPtr is fed to
simple_opc_submit() but does not first pass through finish_ctx().  Almost
none of what finish_ctx is helpful for us because we are the only place
where we delete a clone, and for that reason it is not terribly useful to
put what we do into finish_ctx.  However, *one* thing that finish_ctx()
does do that we don't (didn't) is clear out the object_info_t io on
delete.  This would leave things like version with a value that would
bleed into future instantiations of the object and break things like
the prior_version in pg_log_entry_t's and, much later, break asserts
when loading the missing set off of disk.

Fix by clearing oi.

Fixes: http://tracker.ceph.com/issues/19947
Signed-off-by: Sage Weil <sage@redhat.com>
src/osd/PrimaryLogPG.cc