带有reflink标志的cp:系统如何确定reflink是否可行?

时间:2016-10-25 12:08:40

标签: copy filesystems posix glibc gnu-coreutils

使用reflink选项复制文件时,例如

cp --reflink foo bar

执行cp的步骤和步骤确定底层文件系统是否支持COW。我试着调查coreutils/src/cp.c但找不到特定的系统调用/ ioctl或任何其他确定COW功能的方法,因此继续执行cp执行/报告错误:

cp: failed to clone 'bar' from 'foo': Bad address

简而言之,我正在寻找--reflink=auto选项的分辨率。

1 个答案:

答案 0 :(得分:0)

BTRFS_IOC_CLONEFICLONEcp尝试的ioctl请求代码。前者用于BTRFS重新链接,而后者在XFS获得[1] reflink支持时引入。您可以使用cp命令来查看您所拥有的版本中发生的情况。

[1] http://lwn.net/Articles/702633/