Как получить точку монтирования для заданного пути в пользовательском модуле ядра Linux

Как следует из названия, у меня проблема с моим пользовательским модулем ядра. Моя цель - получить корневую точку монтирования данного пути. Так же, как использование df:

df "/tmp/some_dir/some_file"
vvvvvvvv out vvvvvvvv
Filesystem     1K-blocks  Used Available Use% Mounted on <---
tmpfs            8125932   120   8125812   1% /tmp <----

Я пытался добиться этого с помощью структуры пути, используя поля mnt и dentry, но когда я печатал mnt_root или корень суперблока, он всегда возвращал «/», поэтому не связанную точку монтирования.

Может я просто копаю не в том месте. Я не знаю, являются ли path/dentry/etc... подходящими структурами для этих операций (я начинаю свое приключение с модулями ядра и, вероятно, переборщил :D)

Версия ядра: 5.6.2

Спасибо за совет!


person Radoj11    schedule 12.04.2020    source источник
comment
Какая у вас версия ядра? Это была бы полезная информация, добавьте ее к вопросу.   -  person Marco Bonelli    schedule 12.04.2020
comment
Вы правы, я совсем забыл об этом. Я сейчас на 5.6.2   -  person Radoj11    schedule 12.04.2020


Ответы (1)


Мне удалось достичь своей цели!

Оказывается, в namei есть функция follow_up. .c, который делает именно то, что мне нужно.

person Radoj11    schedule 25.04.2020