]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
blk/zoned: add reset_all_zones()
authorSage Weil <sage@newdream.net>
Fri, 3 Sep 2021 20:53:50 +0000 (15:53 -0500)
committerSage Weil <sage@newdream.net>
Fri, 29 Oct 2021 13:55:56 +0000 (09:55 -0400)
Signed-off-by: Sage Weil <sage@newdream.net>
src/blk/BlockDevice.h
src/blk/zoned/HMSMRDevice.cc
src/blk/zoned/HMSMRDevice.h

index bb49a747e1915c58464b09156ef3e6e8b8cd2e9b..d08e6e3e48668b1c2d49de310e6eb8abf1e85831 100644 (file)
@@ -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<uint64_t>& zones) {
     ceph_assert(is_smr());
   }
index 6459e80a54f1aa81a90d79c187eb32f6a042fa0d..c94e89588c2411ddffdb93f514bff3c29d5aca23 100644 (file)
@@ -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<uint64_t>& zones) {
   for (auto zone_num : zones) {
     if (zbd_reset_zones(zbd_fd, zone_num * zone_size, zone_size) != 0) {
index ea0bf31dbde05c9f896e02e8aaafd01f546d172b..356affdc11e737c6e026c263293d9fe17f9f0703 100644 (file)
@@ -136,6 +136,7 @@ public:
 
   bool is_smr() const final { return true; }
 
+  void reset_all_zones() override;
   void reset_zones(const std::set<uint64_t>& zones) override;
 
   bool get_thin_utilization(uint64_t *total, uint64_t *avail) const final;