return seastar::do_with(attrs_t{}, [=] (auto &aset) {
return tp->submit(ch->get_cid().hash_to_shard(tp->size()), [=, &aset] {
auto c = static_cast<AlienCollection*>(ch.get());
- std::map<std::string, ceph::bufferptr> blueaset;
- const auto r = store->getattrs(c->collection, oid, blueaset);
- for (auto& [bluekey, blueval] : blueaset) {
- ceph::bufferlist bl;
- bl.push_back(std::move(blueval));
- aset.emplace(std::move(bluekey), std::move(bl));
- }
+ const auto r = store->getattrs(c->collection, oid, aset);
return r;
}).then([&aset] (int r) -> get_attrs_ertr::future<attrs_t> {
if (r == -ENOENT) {
bool complete,
bool clear_omap,
ObjectStore::Transaction* t,
- const map<string, bufferlist>& attrs,
+ const map<string, bufferlist, less<>>& attrs,
bufferlist&& omap_header)
{
if (!first) {
interval_set<uint64_t>&& intervals_included,
bufferlist&& data_included,
bufferlist&& omap_header,
- const map<string, bufferlist> &attrs,
+ const map<string, bufferlist, less<>> &attrs,
map<string, bufferlist>&& omap_entries,
ObjectStore::Transaction *t)
{
interval_set<uint64_t>&& intervals_included,
ceph::bufferlist&& data_included,
ceph::bufferlist&& omap_header,
- const std::map<string, bufferlist> &attrs,
+ const std::map<std::string, bufferlist, std::less<>> &attrs,
std::map<string, bufferlist>&& omap_entries,
ceph::os::Transaction *t);
void submit_push_complete(
bool complete,
bool clear_omap,
ObjectStore::Transaction* t,
- const map<string, bufferlist> &attrs,
+ const std::map<std::string, bufferlist, std::less<>> &attrs,
bufferlist&& omap_header);
using interruptor = crimson::interruptible::interruptor<
crimson::osd::IOInterruptCondition>;