From 6992a1cd7436a0d99ef243f25ff16b7690be2928 Mon Sep 17 00:00:00 2001 From: Sage Weil Date: Wed, 15 Sep 2021 19:12:04 -0400 Subject: [PATCH] osdc/Objecter: set SUPPORTSPOOLEIO flag on all ops This tells us the client understands the pool EIO flag, without having to burn a feature bit. Signed-off-by: Sage Weil --- src/include/rados.h | 1 + src/osd/osd_types.cc | 1 + src/osdc/Objecter.cc | 1 + 3 files changed, 3 insertions(+) diff --git a/src/include/rados.h b/src/include/rados.h index faaa053d0ab71..ae4ab59de8f5b 100644 --- a/src/include/rados.h +++ b/src/include/rados.h @@ -476,6 +476,7 @@ enum { CEPH_OSD_FLAG_FULL_FORCE = 0x1000000, /* force op despite full flag */ CEPH_OSD_FLAG_IGNORE_REDIRECT = 0x2000000, /* ignore redirection */ CEPH_OSD_FLAG_RETURNVEC = 0x4000000, /* allow overall result >= 0, and return >= 0 and buffer for each op in opvec */ + CEPH_OSD_FLAG_SUPPORTSPOOLEIO = 0x8000000, /* client understands pool EIO flag */ }; enum { diff --git a/src/osd/osd_types.cc b/src/osd/osd_types.cc index bdcd47b626394..4e1a9b6b8ae3e 100644 --- a/src/osd/osd_types.cc +++ b/src/osd/osd_types.cc @@ -92,6 +92,7 @@ const char *ceph_osd_flag_name(unsigned flag) case CEPH_OSD_FLAG_FULL_FORCE: return "full_force"; case CEPH_OSD_FLAG_IGNORE_REDIRECT: return "ignore_redirect"; case CEPH_OSD_FLAG_RETURNVEC: return "returnvec"; + case CEPH_OSD_FLAG_SUPPORTSPOOLEIO: return "supports_pool_eio"; default: return "???"; } } diff --git a/src/osdc/Objecter.cc b/src/osdc/Objecter.cc index e158ce9d49526..0050489d663de 100644 --- a/src/osdc/Objecter.cc +++ b/src/osdc/Objecter.cc @@ -3181,6 +3181,7 @@ Objecter::MOSDOp *Objecter::_prepare_osd_op(Op *op) int flags = op->target.flags; flags |= CEPH_OSD_FLAG_KNOWN_REDIR; + flags |= CEPH_OSD_FLAG_SUPPORTSPOOLEIO; // Nothing checks this any longer, but needed for compatibility with // pre-luminous osds -- 2.39.5