The is_pg() call is now true even for pgs pending removal, fix broken
finish_remove_pgs() by removing is_pg() check.
Need to add create_collection() to the initial transaction on import
Fixes: #10090
Signed-off-by: David Zafman <dzafman@redhat.com>
Reviewed-by: Sage Weil <sage@redhat.com>
it != ls.end();
++it) {
spg_t pgid;
- snapid_t snap;
if (it->is_temp(pgid)) {
cout << "finish_remove_pgs " << *it << " clearing temp" << std::endl;
continue;
}
- if (it->is_pg(pgid, snap)) {
- continue;
- }
-
uint64_t seq;
coll_t coll(pgid);
char val;
bufferlist one;
one.append('1');
ObjectStore::Transaction *t = new ObjectStore::Transaction;
+ t->create_collection(coll);
t->collection_setattr(coll, "remove", one);
store->apply_transaction(*t);
delete t;