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

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

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

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

Если они отличаются, разделяются ли inode? Заранее спасибо.

1 ответ

Решение

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

Посмотрите fs/super.c для деталей.

Другие вопросы по тегам