From: Sage Weil Date: Fri, 23 Jul 2010 19:59:11 +0000 (-0700) Subject: osd: clean_up_local should ignore snapped, snapdir objects X-Git-Tag: v0.21~59 X-Git-Url: http://git.apps.os.sepia.ceph.com/?a=commitdiff_plain;h=4ab66fa4db12d57ca0fc02cac6ed16a5e3bcd45b;p=ceph.git osd: clean_up_local should ignore snapped, snapdir objects The snap_trimmer is responsible for removing any/all snap objects. snapdir only exists if snapped objects exist and head doesn't, so it will get cleaned up when the snapped object(s) do. --- diff --git a/src/osd/ReplicatedPG.cc b/src/osd/ReplicatedPG.cc index 6e9af16d3801b..c46d22878aa77 100644 --- a/src/osd/ReplicatedPG.cc +++ b/src/osd/ReplicatedPG.cc @@ -3888,15 +3888,16 @@ void ReplicatedPG::clean_up_local(ObjectStore::Transaction& t) // be thorough. vector ls; osd->store->collection_list(coll_t::build_pg_coll(info.pgid), ls); - if (ls.size() != info.stats.num_objects) - dout(10) << " WARNING: " << ls.size() << " != num_objects " << info.stats.num_objects << dendl; - set s; - + set s; for (vector::iterator i = ls.begin(); i != ls.end(); - i++) - s.insert(*i); + i++) + if (i->snap == CEPH_NOSNAP) + s.insert(*i); + + if (s.size() != info.stats.num_objects) + dout(10) << " WARNING: " << s.size() << " != num_objects " << info.stats.num_objects << dendl; set did; for (list::reverse_iterator p = log.log.rbegin();