получить точку монтирования файловой системы в модуле ядра - PullRequest
4 голосов
/ 02 января 2012

Я хочу получить точку монтирования файловой системы для файловой системы в моем модуле ядра, который является наращиваемой файловой системой. Например. Если / home / ab / abc - это файл и / home смонтирован в другой файловой системе, я хочу иметь dentry или структуру пути к / home. Я хочу сделать это в модуле без изменения кода ядра. например в / home / user / есть файл, и теперь я хочу узнать, в каком разделе находится этот файл. Например, этот файл может находиться в разделе, аналогичном «/», или этот файл может находиться в другом разделе, смонтированном в / home или / home / user.

Ответы [ 2 ]

7 голосов
/ 02 января 2012

Вы можете получить список файловых систем из current->namespace.Итерируя current->namespace->list (элементы struct vfsmount), вы можете получить все смонтированные файловые системы.vfsmount->mnt_mountpoint - это требуемая запись каталога.

Вы можете следовать коду prints /proc/mounts (например, base.c/mountstats_open, namespace.c/m_start), чтобы получить более подробную информацию (например, требуется некоторая блокировка).

Однако я не знаю, сможете ли вы сделать это в модуле ядра.

1 голос
/ 07 ноября 2012

вы можете получить указатель на структуру vfsmount из этого кода

http://copilotco.com/mail-archives/security-module.2003/msg00627.html

...