From: Sage Weil Date: Mon, 18 Jan 2016 16:10:05 +0000 (-0500) Subject: osd: use collection handle where possible X-Git-Tag: v10.0.4~153^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=17901f784fcaafd24e60ab69aa80d9529016c064;p=ceph.git osd: use collection handle where possible Signed-off-by: Sage Weil --- diff --git a/src/osd/ECBackend.cc b/src/osd/ECBackend.cc index f1bcd85f6f98..b9b1b04ec229 100644 --- a/src/osd/ECBackend.cc +++ b/src/osd/ECBackend.cc @@ -919,7 +919,7 @@ void ECBackend::handle_sub_read( i->second.begin(); j != i->second.end(); ++j) { bufferlist bl; r = store->read( - coll, + ch, ghobject_t(i->first, ghobject_t::NO_GEN, shard), j->get<0>(), j->get<1>(), @@ -976,7 +976,7 @@ error: if (reply->errors.count(*i)) continue; int r = store->getattrs( - coll, + ch, ghobject_t( *i, ghobject_t::NO_GEN, get_parent()->whoami_shard().shard), reply->attrs_read[*i]); @@ -1712,7 +1712,7 @@ ECUtil::HashInfoRef ECBackend::get_hash_info( dout(10) << __func__ << ": not in cache " << hoid << dendl; struct stat st; int r = store->stat( - coll, + ch, ghobject_t(hoid, ghobject_t::NO_GEN, get_parent()->whoami_shard().shard), &st); ECUtil::HashInfo hinfo(ec_impl->get_chunk_count()); @@ -1729,7 +1729,7 @@ ECUtil::HashInfoRef ECBackend::get_hash_info( } } else { r = store->getattr( - coll, + ch, ghobject_t(hoid, ghobject_t::NO_GEN, get_parent()->whoami_shard().shard), ECUtil::get_hinfo_key(), bl); @@ -2033,7 +2033,7 @@ int ECBackend::objects_get_attrs( map *out) { int r = store->getattrs( - coll, + ch, ghobject_t(hoid, ghobject_t::NO_GEN, get_parent()->whoami_shard().shard), *out); if (r < 0) @@ -2081,7 +2081,7 @@ void ECBackend::be_deep_scrub( bufferlist bl; handle.reset_tp_timeout(); r = store->read( - coll, + ch, ghobject_t( poid, ghobject_t::NO_GEN, get_parent()->whoami_shard().shard), pos, diff --git a/src/osd/PGBackend.cc b/src/osd/PGBackend.cc index cc04ac8ce8fa..d12c25f2e0c2 100644 --- a/src/osd/PGBackend.cc +++ b/src/osd/PGBackend.cc @@ -115,7 +115,7 @@ int PGBackend::objects_list_partial( while (!_next.is_max() && ls->size() < (unsigned)min) { vector objects; int r = store->collection_list( - coll, + ch, _next, ghobject_t::get_max(), parent->sort_bitwise(), @@ -150,7 +150,7 @@ int PGBackend::objects_list_range( assert(ls); vector objects; int r = store->collection_list( - coll, + ch, ghobject_t(start, ghobject_t::NO_GEN, get_parent()->whoami_shard().shard), ghobject_t(end, ghobject_t::NO_GEN, get_parent()->whoami_shard().shard), parent->sort_bitwise(), @@ -180,7 +180,7 @@ int PGBackend::objects_get_attr( { bufferptr bp; int r = store->getattr( - coll, + ch, ghobject_t(hoid, ghobject_t::NO_GEN, get_parent()->whoami_shard().shard), attr.c_str(), bp); @@ -196,7 +196,7 @@ int PGBackend::objects_get_attrs( map *out) { return store->getattrs( - coll, + ch, ghobject_t(hoid, ghobject_t::NO_GEN, get_parent()->whoami_shard().shard), *out); } @@ -297,6 +297,7 @@ PGBackend *PGBackend::build_pg_backend( return new ECBackend( l, coll, + ch, store, cct, ec_impl, @@ -326,7 +327,7 @@ void PGBackend::be_scan_list( struct stat st; int r = store->stat( - coll, + ch, ghobject_t( poid, ghobject_t::NO_GEN, get_parent()->whoami_shard().shard), &st, @@ -336,7 +337,7 @@ void PGBackend::be_scan_list( o.size = st.st_size; assert(!o.negative); store->getattrs( - coll, + ch, ghobject_t( poid, ghobject_t::NO_GEN, get_parent()->whoami_shard().shard), o.attrs); diff --git a/src/osd/ReplicatedBackend.cc b/src/osd/ReplicatedBackend.cc index 72055dec068f..52b6d6342026 100644 --- a/src/osd/ReplicatedBackend.cc +++ b/src/osd/ReplicatedBackend.cc @@ -260,7 +260,7 @@ int ReplicatedBackend::objects_read_sync( uint32_t op_flags, bufferlist *bl) { - return store->read(coll, ghobject_t(hoid), off, len, *bl, op_flags); + return store->read(ch, ghobject_t(hoid), off, len, *bl, op_flags); } struct AsyncReadCallback : public GenContext { @@ -291,7 +291,7 @@ void ReplicatedBackend::objects_read_async( to_read.begin(); i != to_read.end() && r >= 0; ++i) { - int _r = store->read(coll, ghobject_t(hoid), i->first.get<0>(), + int _r = store->read(ch, ghobject_t(hoid), i->first.get<0>(), i->first.get<1>(), *(i->second.first), i->first.get<2>()); if (i->second.second) { @@ -762,7 +762,7 @@ void ReplicatedBackend::be_deep_scrub( while (true) { handle.reset_tp_timeout(); r = store->read( - coll, + ch, ghobject_t( poid, ghobject_t::NO_GEN, get_parent()->whoami_shard().shard), pos, @@ -2014,7 +2014,7 @@ int ReplicatedBackend::build_push_op(const ObjectRecoveryInfo &recovery_info, if (progress.first) { store->omap_get_header(coll, ghobject_t(recovery_info.soid), &out_op->omap_header); - store->getattrs(coll, ghobject_t(recovery_info.soid), out_op->attrset); + store->getattrs(ch, ghobject_t(recovery_info.soid), out_op->attrset); // Debug bufferlist bv = out_op->attrset[OI_ATTR]; @@ -2060,7 +2060,7 @@ int ReplicatedBackend::build_push_op(const ObjectRecoveryInfo &recovery_info, if (!recovery_info.copy_subset.empty()) { interval_set copy_subset = recovery_info.copy_subset; bufferlist bl; - int r = store->fiemap(coll, ghobject_t(recovery_info.soid), 0, + int r = store->fiemap(ch, ghobject_t(recovery_info.soid), 0, copy_subset.range_end(), bl); if (r >= 0) { interval_set fiemap_included; @@ -2089,7 +2089,7 @@ int ReplicatedBackend::build_push_op(const ObjectRecoveryInfo &recovery_info, p != out_op->data_included.end(); ++p) { bufferlist bit; - store->read(coll, ghobject_t(recovery_info.soid), + store->read(ch, ghobject_t(recovery_info.soid), p.get_start(), p.get_len(), bit, cache_dont_need ? CEPH_OSD_OP_FLAG_FADVISE_DONTNEED: 0); if (p.get_len() != bit.length()) { @@ -2275,7 +2275,7 @@ void ReplicatedBackend::handle_pull(pg_shard_t peer, PullOp &op, PushOp *reply) { const hobject_t &soid = op.soid; struct stat st; - int r = store->stat(coll, ghobject_t(soid), &st); + int r = store->stat(ch, ghobject_t(soid), &st); if (r != 0) { get_parent()->clog_error() << get_info().pgid << " " << peer << " tried to pull " << soid diff --git a/src/osd/ReplicatedPG.cc b/src/osd/ReplicatedPG.cc index e3e9e520ecf0..bf40634afd00 100644 --- a/src/osd/ReplicatedPG.cc +++ b/src/osd/ReplicatedPG.cc @@ -1287,7 +1287,7 @@ void ReplicatedPG::do_pg_op(OpRequestRef op) wait_for_unreadable_object(oid, op); return; } - result = osd->store->read(coll, ghobject_t(oid), 0, 0, osd_op.outdata); + result = osd->store->read(ch, ghobject_t(oid), 0, 0, osd_op.outdata); } } break; @@ -4110,8 +4110,8 @@ int ReplicatedPG::do_osd_ops(OpContext *ctx, vector& ops) { // read into a buffer bufferlist bl; - int r = osd->store->fiemap(coll, ghobject_t(soid, ghobject_t::NO_GEN, - info.pgid.shard), + int r = osd->store->fiemap(ch, ghobject_t(soid, ghobject_t::NO_GEN, + info.pgid.shard), op.extent.offset, op.extent.length, bl); osd_op.outdata.claim(bl); if (r < 0) @@ -4144,8 +4144,8 @@ int ReplicatedPG::do_osd_ops(OpContext *ctx, vector& ops) // read into a buffer bufferlist bl; uint32_t total_read = 0; - int r = osd->store->fiemap(coll, ghobject_t(soid, ghobject_t::NO_GEN, - info.pgid.shard), + int r = osd->store->fiemap(ch, ghobject_t(soid, ghobject_t::NO_GEN, + info.pgid.shard), op.extent.offset, op.extent.length, bl); if (r < 0) { result = r; @@ -5480,7 +5480,7 @@ int ReplicatedPG::do_osd_ops(OpContext *ctx, vector& ops) } ++ctx->num_read; { - osd->store->omap_get_header(coll, ghobject_t(soid), &osd_op.outdata); + osd->store->omap_get_header(ch, ghobject_t(soid), &osd_op.outdata); ctx->delta_stats.num_rd_kb += SHIFT_ROUND_UP(osd_op.outdata.length(), 10); ctx->delta_stats.num_rd++; } @@ -5501,7 +5501,7 @@ int ReplicatedPG::do_osd_ops(OpContext *ctx, vector& ops) tracepoint(osd, do_osd_op_pre_omapgetvalsbykeys, soid.oid.name.c_str(), soid.snap.val, list_entries(keys_to_get).c_str()); map out; if (pool.info.supports_omap()) { - osd->store->omap_get_values(coll, ghobject_t(soid), keys_to_get, &out); + osd->store->omap_get_values(ch, ghobject_t(soid), keys_to_get, &out); } // else return empty omap entries ::encode(out, osd_op.outdata); ctx->delta_stats.num_rd_kb += SHIFT_ROUND_UP(osd_op.outdata.length(), 10); @@ -5536,7 +5536,7 @@ int ReplicatedPG::do_osd_ops(OpContext *ctx, vector& ops) i != assertions.end(); ++i) to_get.insert(i->first); - int r = osd->store->omap_get_values(coll, ghobject_t(soid), + int r = osd->store->omap_get_values(ch, ghobject_t(soid), to_get, &out); if (r < 0) { result = r; @@ -6846,7 +6846,7 @@ int ReplicatedPG::fill_in_copy_get( if (left > 0 && !cursor.omap_complete) { assert(cursor.data_complete); if (cursor.omap_offset.empty()) { - osd->store->omap_get_header(coll, ghobject_t(oi.soid), + osd->store->omap_get_header(ch, ghobject_t(oi.soid), &reply_obj.omap_header); } bufferlist omap_data; @@ -11000,7 +11000,7 @@ void ReplicatedPG::check_local() << " at " << p->version << dendl; struct stat st; int r = osd->store->stat( - coll, + ch, ghobject_t(p->soid, ghobject_t::NO_GEN, pg_whoami.shard), &st); if (r != -ENOENT) { @@ -11647,7 +11647,7 @@ void ReplicatedPG::agent_load_hit_sets() bufferlist bl; { obc->ondisk_read_lock(); - int r = osd->store->read(coll, ghobject_t(oid), 0, 0, bl); + int r = osd->store->read(ch, ghobject_t(oid), 0, 0, bl); assert(r >= 0); obc->ondisk_read_unlock(); }