diff --git a/src/crimson/os/seastore/btree/fixed_kv_node.h b/src/crimson/os/seastore/btree/fixed_kv_node.h index 24475157938..5a729c70520 100644 --- a/src/crimson/os/seastore/btree/fixed_kv_node.h +++ b/src/crimson/os/seastore/btree/fixed_kv_node.h @@ -543,8 +543,10 @@ struct FixedKVInternalNode } if (pending_version.get_last_committed_crc()) { // if pending_version has already calculated its crc, - // calculate it again. - pending_version.set_last_committed_crc(pending_version.calc_crc32c()); + // calculate it again and keep the on-page checksum in sync. + auto crc = pending_version.calc_crc32c(); + pending_version.set_last_committed_crc(crc); + pending_version.update_in_extent_chksum_field(crc); } } } diff --git a/src/crimson/os/seastore/lba/lba_btree_node.h b/src/crimson/os/seastore/lba/lba_btree_node.h index 7dad89038a3..4513afdc4ef 100644 --- a/src/crimson/os/seastore/lba/lba_btree_node.h +++ b/src/crimson/os/seastore/lba/lba_btree_node.h @@ -394,8 +394,10 @@ struct LBALeafNode if (pending_version.is_initial_pending() && pending_version.get_last_committed_crc()) { // if pending_version has already calculated its crc, - // calculate it again. - pending_version.set_last_committed_crc(pending_version.calc_crc32c()); + // calculate it again and keep the on-page checksum in sync. + auto crc = pending_version.calc_crc32c(); + pending_version.set_last_committed_crc(crc); + pending_version.update_in_extent_chksum_field(crc); } return modified; }