Мое решение - создать символьное устройство, привязанное к блочному устройству. И реализация mmap связанного интерфейса устройства char. Каждый раз, когда блочное устройство получает запрос, скажите ему, чтобы устройство char отображало страницу bv_ в пользовательское пространство.
Но при обработке ошибки страницы возникает некоторая проблема.
bv_page заблокирован перед mmap, поэтому запрос будет ждать вечно. Можно ли вернуть VM_FAULT_LOCKED для обработки ошибок страницы?
ядро обработало backing_dev_info страницы, но связанный с ним индекс равен NULL.
ИтакИнтересно, возможно ли мое решение?
Или есть какое-то другое решение для отображения запроса блочного устройства в пространство пользователя?