fs/ramfs/inode.c
static struct file_system_type ramfs_fs_type = {
.name = "ramfs",
.init_fs_context = ramfs_init_fs_context,
.parameters = ramfs_fs_parameters,
.kill_sb = ramfs_kill_sb,
.fs_flags = FS_USERNS_MOUNT,
static struct file_system_type shmem_fs_type = {
.name = "tmpfs",
.init_fs_context = ramfs_init_fs_context,
.parameters = ramfs_fs_parameters,
.kill_sb = kill_litter_super,
.fs_flags = FS_USERNS_MOUNT,
};
ramfs 和 CONFIG_SHMEM=n & CONFIG_TMPFS=n 配置下的 tmpfs 很像
"ramfs" 文件系统 被 注册了 ,但没有被挂载过
"ramfs" 文件系统中的函数 被 低配版的 tmpfs 使用了
所以 "ramfs" 不用被关注
“ramfs” 的 东西(ramfs_fs_type 的各个成员) 被什么用到了
成员角度
mnt_init
shmem_init
register_filesystem(&shmem_fs_type);
kern_mount(&shmem_fs_type);
init_rootfs
init_mount_tree
vfs_kern_mount(&rootfs_fs_type, 0, "rootfs", NULL);
struct file_system_type rootfs_fs_type = {
.name = "rootfs",
.init_fs_context = rootfs_init_fs_context,
ramfs_init_fs_context
static struct file_system_type shmem_fs_type = {
.name = "tmpfs",
.init_fs_context = ramfs_init_fs_context,
ramfs_init_fs_context
fc->ops = &ramfs_context_ops;
.parse_param = ramfs_parse_param,
fs_parse(fc, ramfs_fs_parameters, param, &result);
static struct file_system_type shmem_fs_type = {
.name = "tmpfs",
.parameters = ramfs_fs_parameters,
文件系统角度
mnt_init
shmem_init
register_filesystem(&shmem_fs_type);
kern_mount(&shmem_fs_type);
init_rootfs
init_mount_tree
mnt_init
shmem_init
init_rootfs
init_mount_tree
vfs_kern_mount(&rootfs_fs_type, 0, "rootfs", NULL);