class KernelDevice : public BlockDevice {
int fd_direct, fd_buffered;
std::string path;
- FS *fs;
bool aio, dio;
+ int vdo_fd = -1; ///< fd for vdo sysfs directory
+ string vdo_name;
+
std::string devname; ///< kernel dev name (/sys/block/$devname), if any
Mutex debug_lock;
void debug_aio_link(aio_t& aio);
void debug_aio_unlink(aio_t& aio);
+ void _detect_vdo();
+
public:
- KernelDevice(CephContext* cct, aio_callback_t cb, void *cbpriv);
+ KernelDevice(CephContext* cct, aio_callback_t cb, void *cbpriv, aio_callback_t d_cb, void *d_cbpriv);
void aio_submit(IOContext *ioc) override;
+ void discard_drain() override;
int collect_metadata(const std::string& prefix, map<std::string,std::string> *pm) const override;
int get_devname(std::string *s) override {