Thank you, Christoph, for your attention to the patch. I am preparing the next version of the patch. In it, I planned to simplify the bdev_filer code. I will make changes in it, in accordance with your comments, and will add your code and check it on my test labs. But I'm not sure if using the blk_mq_freeze_queue() is appropriate. If I understood the code correctly, it is based on the expectation that the counter q->q_usage_counter will decrease to zero. To increase it, a blk_queue_enter() is used. And at the time of calling the filter_bio() in the submit_bio_noacct(), this counter has not yet been increased. I will double check this and try to get rid of the bdev->bd_filter_lock.