Использует ли ядро ​​Linux структуры dentry с повторяющимися точками монтирования? Если да, то как?

Итак, я могу смонтировать sysfs (виртуальную файловую систему для /sys), например, в нескольких местах, и каждый раз буду видеть одно и то же содержимое. Точно так же я могу монтировать одно и то же блочное устройство (например, /dev/sda1) в нескольких точках монтирования.

В данный момент я пишу VFS для своего ядра, и я борюсь со спецификой того, как dentries точки монтирования прикрепляются к частям файловой системы.

Итак, мой вопрос: используются ли структуры dentry для представления (например) файловой системы sysfs в (например) /mnt те же самые структуры, используемые, если я снова монтирую sysfs в /mnt2? Или, наоборот, эти структуры разные?

Если они разные, являются ли иноды общими? Заранее спасибо.


person Keeley Hoek    schedule 01.10.2013    source источник


Ответы (1)


Зубы общие. Каждый корневой dentry файловой системы хранится в соответствующей структуре суперблока, и эти структуры связаны с dentry точки монтирования с помощью структур vfsmount.

Подробности смотрите в файле fs/super.c.

person Keeley Hoek    schedule 06.10.2013