Skip to content

Commit e35401e

Browse files
authored
Merge pull request ceph#59652 from xxhdx1985126/wip-67945
crimson/osd/osd_operations/snaptrim_event: only increase osd_osd_param_t::at_version after clone adjustments Reviewed-by: Matan Breizman <[email protected]>
2 parents cc667a5 + 5f26048 commit e35401e

File tree

5 files changed

+3
-73
lines changed

5 files changed

+3
-73
lines changed

src/crimson/osd/ops_executer.cc

Lines changed: 0 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -844,58 +844,6 @@ std::vector<pg_log_entry_t> OpsExecuter::prepare_transaction(
844844
return log_entries;
845845
}
846846

847-
OpsExecuter::interruptible_future<> OpsExecuter::snap_map_remove(
848-
const hobject_t& soid,
849-
SnapMapper& snap_mapper,
850-
OSDriver& osdriver,
851-
ceph::os::Transaction& txn)
852-
{
853-
logger().debug("{}: soid {}", __func__, soid);
854-
return interruptor::async([soid, &snap_mapper,
855-
_t=osdriver.get_transaction(&txn)]() mutable {
856-
const auto r = snap_mapper.remove_oid(soid, &_t);
857-
if (r) {
858-
logger().error("{}: remove_oid {} failed with {}",
859-
__func__, soid, r);
860-
}
861-
// On removal tolerate missing key corruption
862-
assert(r == 0 || r == -ENOENT);
863-
});
864-
}
865-
866-
OpsExecuter::interruptible_future<> OpsExecuter::snap_map_modify(
867-
const hobject_t& soid,
868-
const std::set<snapid_t>& snaps,
869-
SnapMapper& snap_mapper,
870-
OSDriver& osdriver,
871-
ceph::os::Transaction& txn)
872-
{
873-
logger().debug("{}: soid {}, snaps {}", __func__, soid, snaps);
874-
// TODO: avoid seastar::async https://tracker.ceph.com/issues/67704
875-
return interruptor::async([soid, snaps, &snap_mapper,
876-
_t=osdriver.get_transaction(&txn)]() mutable {
877-
assert(std::size(snaps) > 0);
878-
[[maybe_unused]] const auto r = snap_mapper.update_snaps(
879-
soid, snaps, 0, &_t);
880-
assert(r == 0);
881-
});
882-
}
883-
884-
OpsExecuter::interruptible_future<> OpsExecuter::snap_map_clone(
885-
const hobject_t& soid,
886-
const std::set<snapid_t>& snaps,
887-
SnapMapper& snap_mapper,
888-
OSDriver& osdriver,
889-
ceph::os::Transaction& txn)
890-
{
891-
logger().debug("{}: soid {}, snaps {}", __func__, soid, snaps);
892-
return interruptor::async([soid, snaps, &snap_mapper,
893-
_t=osdriver.get_transaction(&txn)]() mutable {
894-
assert(std::size(snaps) > 0);
895-
snap_mapper.add_oid(soid, snaps, &_t);
896-
});
897-
}
898-
899847
// Defined here because there is a circular dependency between OpsExecuter and PG
900848
uint32_t OpsExecuter::get_pool_stripe_width() const {
901849
return pg->get_pgpool().info.get_stripe_width();

src/crimson/osd/ops_executer.h

Lines changed: 0 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -273,25 +273,6 @@ class OpsExecuter : public seastar::enable_lw_shared_from_this<OpsExecuter> {
273273
OSDriver& osdriver,
274274
ceph::os::Transaction& txn);
275275

276-
public:
277-
static interruptible_future<> snap_map_remove(
278-
const hobject_t& soid,
279-
SnapMapper& snap_mapper,
280-
OSDriver& osdriver,
281-
ceph::os::Transaction& txn);
282-
static interruptible_future<> snap_map_modify(
283-
const hobject_t& soid,
284-
const std::set<snapid_t>& snaps,
285-
SnapMapper& snap_mapper,
286-
OSDriver& osdriver,
287-
ceph::os::Transaction& txn);
288-
static interruptible_future<> snap_map_clone(
289-
const hobject_t& soid,
290-
const std::set<snapid_t>& snaps,
291-
SnapMapper& snap_mapper,
292-
OSDriver& osdriver,
293-
ceph::os::Transaction& txn);
294-
295276
private:
296277
// this gizmo could be wrapped in std::optional for the sake of lazy
297278
// initialization. we don't need it for ops that doesn't have effect

src/crimson/osd/osd_operations/snaptrim_event.cc

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -197,7 +197,7 @@ SnapTrimObjSubEvent::remove_clone(
197197
pg->get_collection_ref()->get_cid(),
198198
ghobject_t{coid, ghobject_t::NO_GEN, shard_id_t::NO_SHARD});
199199
obc->obs.oi = object_info_t(coid);
200-
return OpsExecuter::snap_map_remove(coid, pg->snap_mapper, pg->osdriver, txn);
200+
return interruptor::now();
201201
}
202202

203203
void SnapTrimObjSubEvent::remove_head_whiteout(
@@ -363,6 +363,7 @@ SnapTrimObjSubEvent::remove_or_update(
363363
// save head snapset
364364
logger().debug("{}: {} new snapset {} on {}",
365365
*this, coid, head_obc->ssc->snapset, head_obc->obs.oi);
366+
osd_op_p.at_version.version++;
366367
if (head_obc->ssc->snapset.clones.empty() && head_obc->obs.oi.is_whiteout()) {
367368
remove_head_whiteout(obc, head_obc, txn);
368369
} else {

src/crimson/osd/osd_operations/snaptrim_event.h

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -155,7 +155,6 @@ class SnapTrimObjSubEvent : public PhasedOperationT<SnapTrimObjSubEvent> {
155155
rid,
156156
mt,
157157
return_code);
158-
osd_op_p.at_version.version++;
159158
return log_entries.back();
160159
}
161160

src/crimson/osd/pg.cc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1498,6 +1498,7 @@ PG::interruptible_future<> PG::update_snap_map(
14981498
log_entries,
14991499
[this, &t](const auto& entry) mutable {
15001500
if (entry.soid.snap < CEPH_MAXSNAP) {
1501+
// TODO: avoid seastar::async https://tracker.ceph.com/issues/67704
15011502
return interruptor::async(
15021503
[this, entry, _t=osdriver.get_transaction(&t)]() mutable {
15031504
snap_mapper.update_snap_map(entry, &_t);

0 commit comments

Comments
 (0)