Linux程序员的手册页fallocate(2)指出:
如果在模式中指定了
FALLOC_FL_UNSHARE
标志,则共享文件数据范围将对文件私有,以确保后续的写入不会由于空间不足而失败。通常,这将通过对文件中的所有共享数据执行写时复制操作来完成。并非所有文件系统都支持此标志。
很酷,但是... 首先如何创建共享文件数据扩展区?
cp
标志执行--reflink
或使用ioctl_ficlonerange(2)
系统调用。[查看内核代码,我看到FALLOC_FL_UNSHARE_RANGE
仅在XFS的情况下得到处理,所以到目前为止,这个可用于错误分类的标志仅在XFS上有效。