Signed-off-by: Abutalib Aghayev <agayev@psu.edu>
ceph_assert(is_smr());
return conventional_region_size;
}
+ virtual void reset_zones(const std::set<uint64_t> *zones) {
+ ceph_assert(is_smr());
+ }
virtual void aio_submit(IOContext *ioc) = 0;
return;
}
+void HMSMRDevice::reset_zones(const std::set<uint64_t> *zones) {
+ for (auto zone_num : *zones) {
+ if (zbd_reset_zones(zbd_dev, zone_num * zone_size, zone_size) != 0) {
+ derr << __func__ << " resetting zone failed for zone " << zone_num << dendl;
+ }
+ }
+}
+
bool HMSMRDevice::get_thin_utilization(uint64_t *total, uint64_t *avail) const
{
if (vdo_fd < 0) {
string vdo_name;
std::string devname; ///< kernel dev name (/sys/block/$devname), if any
+ int zbd_dev;
ceph::mutex debug_lock = ceph::make_mutex("HMSMRDevice::debug_lock");
interval_set<uint64_t> debug_inflight;
bool is_smr() const final { return true; }
+ void reset_zones(const std::set<uint64_t> *zones) override;
+
bool get_thin_utilization(uint64_t *total, uint64_t *avail) const final;
int read(uint64_t off, uint64_t len, bufferlist *pbl,