Linux Kernel dentry и inode - PullRequest
       0

Linux Kernel dentry и inode

4 голосов
/ 07 января 2011

Можно ли построить абсолютный путь из заданного dentry и inode?

Спасибо всем

Ответы [ 3 ]

1 голос
/ 07 января 2011

Взгляните на dentry_path(). Это заполнит буфер с путем до корня монтирования. Чтобы идти дальше, вам нужно будет перебирать f_vfsmount вашего файла и mnt_parent s, пока вы не достигнете истинного корня файловой системы.

1 голос
/ 12 июня 2016

да, достаточно всего одного зубного камня, проходящего через зубной двор -> родитель. будьте осторожны, когда вы достигнете точки монтирования, для поддержки linux «один дентри монтирует несколько устройств» ... ну, это легко кодировать, просто переключитесь на vfsmnt-> mnt_parent.

Кстати: меня часто смущало, почему linux строит список точек монтирования с полем "mnt_parent", а не "mnt_child", при написании этого ответа я, кажется, что-то угадал.

1 голос
/ 07 января 2011

Если у вас есть struct path (или вы можете сконструировать его), посмотрите, как tomoyo делает это: http://lxr.linux.no/linux+v2.6.37/security/tomoyo/realpath.c#L86

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...