From: Sage Weil Date: Fri, 3 Sep 2021 20:53:50 +0000 (-0500) Subject: blk/zoned: add reset_all_zones() X-Git-Tag: v17.1.0~535^2~55 X-Git-Url: http://git.apps.os.sepia.ceph.com/?a=commitdiff_plain;h=8be98e24f610c318936c0058ef31f124996525d9;p=ceph.git blk/zoned: add reset_all_zones() Signed-off-by: Sage Weil --- diff --git a/src/blk/BlockDevice.h b/src/blk/BlockDevice.h index bb49a747e1915..d08e6e3e48668 100644 --- a/src/blk/BlockDevice.h +++ b/src/blk/BlockDevice.h @@ -205,6 +205,7 @@ public: ceph_assert(is_smr()); return conventional_region_size; } + virtual void reset_all_zones() {} virtual void reset_zones(const std::set& zones) { ceph_assert(is_smr()); } diff --git a/src/blk/zoned/HMSMRDevice.cc b/src/blk/zoned/HMSMRDevice.cc index 6459e80a54f1a..c94e89588c241 100644 --- a/src/blk/zoned/HMSMRDevice.cc +++ b/src/blk/zoned/HMSMRDevice.cc @@ -419,6 +419,11 @@ void HMSMRDevice::_detect_vdo() return; } +void HMSMRDevice::reset_all_zones() +{ + zbd_reset_zones(zbd_fd, conventional_region_size, 0); +} + void HMSMRDevice::reset_zones(const std::set& zones) { for (auto zone_num : zones) { if (zbd_reset_zones(zbd_fd, zone_num * zone_size, zone_size) != 0) { diff --git a/src/blk/zoned/HMSMRDevice.h b/src/blk/zoned/HMSMRDevice.h index ea0bf31dbde05..356affdc11e73 100644 --- a/src/blk/zoned/HMSMRDevice.h +++ b/src/blk/zoned/HMSMRDevice.h @@ -136,6 +136,7 @@ public: bool is_smr() const final { return true; } + void reset_all_zones() override; void reset_zones(const std::set& zones) override; bool get_thin_utilization(uint64_t *total, uint64_t *avail) const final;