Otherwise, if we get an incremental from hammer (struct_v = 6) we will
encode the full map as if it were before CEPH_FEATURE_PGID64, which
was actually pre-argonaut. Similarly, if struct_v >= 7, we know it
was encoded with CEPH_FEATURE_OSDMAP_ENC.
Fixes: #13234
Backport: hammer
Signed-off-by: Samuel Just <sjust@redhat.com>
bl.advance(-struct_v_size);
decode_classic(bl);
encode_features = 0;
+ if (struct_v >= 6)
+ encode_features = CEPH_FEATURE_PGID64;
+ else
+ encode_features = 0;
return;
}
{
if (struct_v >= 2)
::decode(encode_features, bl);
else
- encode_features = 0;
+ encode_features = CEPH_FEATURE_PGID64 | CEPH_FEATURE_OSDMAP_ENC;
DECODE_FINISH(bl); // osd-only data
}