if (candidate.snap == CEPH_SNAPDIR)
continue;
- if (candidate.snap < snapid)
+ if (candidate.snap != CEPH_NOSNAP)
continue;
- if (snapid != CEPH_NOSNAP) {
- bufferlist bl;
- if (candidate.snap == CEPH_NOSNAP) {
- pgbackend->objects_get_attr(
- candidate,
- SS_ATTR,
- &bl);
- SnapSet snapset(bl);
- if (snapid <= snapset.seq)
- continue;
- } else {
- bufferlist attr_bl;
- pgbackend->objects_get_attr(
- candidate, OI_ATTR, &attr_bl);
- object_info_t oi(attr_bl);
- vector<snapid_t>::iterator i = find(oi.snaps.begin(),
- oi.snaps.end(),
- snapid);
- if (i == oi.snaps.end())
- continue;
- }
- }
-
// skip wrong namespace
- if (candidate.get_namespace() != m->get_object_locator().nspace)
+ if (candidate.get_namespace() != m->get_hobj().nspace)
continue;
if (filter && !pgls_filter(filter, candidate, filter_out))