Thanks for the answer. Unfortunately, blk-rq-qos cannot be used efficiently for this purpose. blk-rq-qos is good for collecting request queue processing metrics. The level at which the interception is performed is too low - it happens after the device driver has already received the request for processing. For the filter to work efficiently, we need to ensure that the interception is performed on a higher level. It is required to put processing of multiple BIOs on hold while COW algorithm is being executed for them. We must not be blocking the request processing queue, and also we would like to avoid impacting the IO scheduler operations. -- Sergei Shtepa Veeam Software developer.