【发布时间】:2012-03-22 23:25:04
【问题描述】:
您好,我是内核编程的新手。我正在写一个小内核模块 即基于 wrapfs 模板来实现备份机制。这是 纯粹作为学习基础。
我正在扩展 wrapfs,以便在进行 write 调用时透明地进行 wrapfs 在单独的目录中复制该文件,然后执行写入 文件上。但我不想为每个写调用创建一个副本。
一种天真的方法可能是我检查该目录中是否存在文件。但 我认为对于每个呼叫检查,这可能是一个严重的惩罚。
我还可以检查第一次写入调用,然后为它存储一个值 使用 private_data 属性的特定文件。但这不会存储在 磁盘。所以我需要再次检查。
我也在考虑利用修改时间。我可以保存一个 修改时间。如果旧的修改时间在那个时间之前,那么只有 创建一个副本,否则我不会做任何事情。我尝试使用 inode.i_mtime 为此,但它甚至是在调用 write 之前的修改时间,也是 应用程序可以修改该时间。
所以我正在考虑在磁盘上的 inode 中存储一些值,以表明它的 备份是否已创建。那可能吗?任何其他建议或 欢迎使用方法。
【问题讨论】:
-
格式化您的 blob 对让您的问题阅读大有帮助。
标签: linux filesystems linux-kernel kernel inode