我正在研究Linux内核3.3
中的FAT
文件系统代码。 对于一个项目,我需要在挂载文件系统的根目录下在挂载时创建一个文件。我已经想出了在哪里编写代码来创建它,但有几个关于创建的问题。 (该功能是vfat_mount
,在linux/fs/fat/namei_vfat.c
中)。文件系统级别的文件创建
mount
函数似乎没有挂载点作为路径,但我相信根目录的dentry存储在超级块中。我不确定如何使用此可用数据创建文件。系统调用open()
似乎不是一个选项,所以我应该使用文件系统特定vfat_create
为此目的?如果是这样,有人可以帮助我更多的细节或一些例子。
此外,该文件需要跨越几个群集,我不希望文件系统搜索并分配空闲群集。那么有没有办法直接创建文件,还是应该在创建文件后使用类似fat_add_cluster()
的文件?
请考虑是否可以通过添加或修改用户空间工具或守护程序来完成此操作。 –
我不太明白你的意思。但是如果我在文件系统级别之外做了任何改变,其他文件系统将会受到影响。 – Sankarnm
我的意思是不要试图通过改变内核来做到这一点。完全在用户空间中完成 - 即使用程序或守护进程。强烈建议从内核中访问实际的磁盘文件。 –