From: Xuehan Xu Date: Fri, 3 Sep 2021 15:17:12 +0000 (+0800) Subject: crimson/os/seastore: allow getting empty delta from omap extents X-Git-Tag: v17.1.0~919^2~1 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=4cc0dd2b6c75b430c31457a2bc6402c617dc9480;p=ceph.git crimson/os/seastore: allow getting empty delta from omap extents there are chances that a transaction gets invalidated after some of its extents have their delta prepared. Signed-off-by: Xuehan Xu --- diff --git a/src/crimson/os/seastore/omap_manager/btree/omap_btree_node_impl.h b/src/crimson/os/seastore/omap_manager/btree/omap_btree_node_impl.h index 05819217c5db..a26b9af9e884 100644 --- a/src/crimson/os/seastore/omap_manager/btree/omap_btree_node_impl.h +++ b/src/crimson/os/seastore/omap_manager/btree/omap_btree_node_impl.h @@ -108,10 +108,11 @@ struct OMapInnerNode } ceph::bufferlist get_delta() final { - assert(!delta_buffer.empty()); ceph::bufferlist bl; - encode(delta_buffer, bl); - delta_buffer.clear(); + if (!delta_buffer.empty()) { + encode(delta_buffer, bl); + delta_buffer.clear(); + } return bl; } @@ -205,10 +206,11 @@ struct OMapLeafNode } ceph::bufferlist get_delta() final { - assert(!delta_buffer.empty()); ceph::bufferlist bl; - encode(delta_buffer, bl); - delta_buffer.clear(); + if (!delta_buffer.empty()) { + encode(delta_buffer, bl); + delta_buffer.clear(); + } return bl; }