Ядро linux повторно использует структуры dentry с дублирующими точками монтирования? Если так, то как?
Итак, я могу смонтировать sysfs (виртуальную файловую систему для /sys), например, в нескольких местах, и я буду видеть одно и то же содержимое каждый раз. Точно так же я могу монтировать одно и то же блочное устройство (например, /dev/sda1) в нескольких точках монтирования.
В данный момент я пишу VFS для своего ядра и борюсь со спецификой того, как зубные точки точки монтирования прикрепляются к частям файловой системы.
Поэтому мой вопрос: используются ли структуры dentry для представления (например) файловой системы sysfs в (например) /mnt те же структуры, которые используются, если я снова монтирую sysfs в /mnt2? Или, наоборот, эти структуры разные?
Если они отличаются, разделяются ли inode? Заранее спасибо.
1 ответ
Дентрии являются общими. Корневой зубной ряд каждой файловой системы хранится в соответствующей структуре суперблока, и эти структуры связаны с зубными точками монтирования с помощью структур vfsmount.
Посмотрите fs/super.c для деталей.