From 8be98e24f610c318936c0058ef31f124996525d9 Mon Sep 17 00:00:00 2001 From: Sage Weil Date: Fri, 3 Sep 2021 15:53:50 -0500 Subject: [PATCH] blk/zoned: add reset_all_zones() Signed-off-by: Sage Weil --- src/blk/BlockDevice.h | 1 + src/blk/zoned/HMSMRDevice.cc | 5 +++++ src/blk/zoned/HMSMRDevice.h | 1 + 3 files changed, 7 insertions(+) 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; -- 2.39.5