Skip to content

Commit e905fed

Browse files
committed
osd/PG: make use of SnapMapper::update_snap_map
ceph#58868 introduced SnapMapper::update_snap_map to be used both by Crimson and Classic. No change in behavior. Signed-off-by: Matan Breizman <[email protected]>
1 parent fc70b44 commit e905fed

File tree

1 file changed

+3
-39
lines changed

1 file changed

+3
-39
lines changed

src/osd/PG.cc

Lines changed: 3 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -1137,46 +1137,10 @@ void PG::update_snap_map(
11371137
const vector<pg_log_entry_t> &log_entries,
11381138
ObjectStore::Transaction &t)
11391139
{
1140-
for (auto i = log_entries.cbegin(); i != log_entries.cend(); ++i) {
1140+
for (const auto& entry : log_entries) {
11411141
OSDriver::OSTransaction _t(osdriver.get_transaction(&t));
1142-
if (i->soid.snap < CEPH_MAXSNAP) {
1143-
if (i->is_delete()) {
1144-
int r = snap_mapper.remove_oid(
1145-
i->soid,
1146-
&_t);
1147-
if (r)
1148-
derr << __func__ << " remove_oid " << i->soid << " failed with " << r << dendl;
1149-
// On removal tolerate missing key corruption
1150-
ceph_assert(r == 0 || r == -ENOENT);
1151-
} else if (i->is_update()) {
1152-
ceph_assert(i->snaps.length() > 0);
1153-
vector<snapid_t> snaps;
1154-
bufferlist snapbl = i->snaps;
1155-
auto p = snapbl.cbegin();
1156-
try {
1157-
decode(snaps, p);
1158-
} catch (...) {
1159-
derr << __func__ << " decode snaps failure on " << *i << dendl;
1160-
snaps.clear();
1161-
}
1162-
set<snapid_t> _snaps(snaps.begin(), snaps.end());
1163-
1164-
if (i->is_clone() || i->is_promote()) {
1165-
snap_mapper.add_oid(
1166-
i->soid,
1167-
_snaps,
1168-
&_t);
1169-
} else if (i->is_modify()) {
1170-
int r = snap_mapper.update_snaps(
1171-
i->soid,
1172-
_snaps,
1173-
0,
1174-
&_t);
1175-
ceph_assert(r == 0);
1176-
} else {
1177-
ceph_assert(i->is_clean());
1178-
}
1179-
}
1142+
if (entry.soid.snap < CEPH_MAXSNAP) {
1143+
snap_mapper.update_snap_map(entry, &_t);
11801144
}
11811145
}
11821146
}

0 commit comments

Comments
 (0)