From: Yingxin Cheng Date: Fri, 21 Jun 2024 05:49:41 +0000 (+0800) Subject: crimson/os/seastore: encode ool records without padding X-Git-Tag: v19.1.1~40^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=8fe0a9ae0a8ef4d74afd97917ecc2cc433f8933f;p=ceph.git crimson/os/seastore: encode ool records without padding Signed-off-by: Yingxin Cheng (cherry picked from commit 35085b94a1a7ca0af5f5088ecc73ebc9cafebb28) --- diff --git a/src/crimson/os/seastore/extent_placement_manager.cc b/src/crimson/os/seastore/extent_placement_manager.cc index 2c59ec590ba5..c7f4a41f431c 100644 --- a/src/crimson/os/seastore/extent_placement_manager.cc +++ b/src/crimson/os/seastore/extent_placement_manager.cc @@ -84,7 +84,7 @@ SegmentedOolWriter::do_write( return do_write(t, extents); }); } - record_t record(record_type_t::JOURNAL, t.get_src()); + record_t record(record_type_t::OOL, t.get_src()); std::list pending_extents; auto commit_time = seastar::lowres_system_clock::now(); diff --git a/src/crimson/os/seastore/seastore_types.cc b/src/crimson/os/seastore/seastore_types.cc index 070efa0c0469..e31b104a5265 100644 --- a/src/crimson/os/seastore/seastore_types.cc +++ b/src/crimson/os/seastore/seastore_types.cc @@ -571,6 +571,7 @@ ceph::bufferlist encode_records( const journal_seq_t& committed_to, segment_nonce_t current_segment_nonce) { + assert(record_group.size.record_type < record_type_t::MAX); assert(record_group.size.block_size > 0); assert(record_group.records.size() > 0); @@ -582,6 +583,15 @@ ceph::bufferlist encode_records( } } + if (record_group.size.record_type == record_type_t::OOL) { + // OOL won't contain metadata + assert(record_group.size.get_mdlength() == 0); + ceph_assert(data_bl.length() == + record_group.size.get_encoded_length()); + record_group.clear(); + return data_bl; + } + // JOURNAL bufferlist bl; record_group_header_t header{ static_cast(record_group.records.size()),