
On 07/06/2018 03:43 PM, Julio Faracco wrote:
This commit renames and adds other macros to support aother filesystems when a reflink is performed. After that, XFS filesystems (and others) with reflink support will be able to clone.
Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1565004
Signed-off-by: Julio Faracco <jcfaracco@gmail.com> --- src/storage/storage_util.c | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-)
diff --git a/src/storage/storage_util.c b/src/storage/storage_util.c index a701a75702..fd1239c6cb 100644 --- a/src/storage/storage_util.c +++ b/src/storage/storage_util.c @@ -36,6 +36,9 @@ # ifndef FS_NOCOW_FL # define FS_NOCOW_FL 0x00800000 /* Do not cow file */ # endif +# ifdef FICLONE +# define REFLINK_IOC_CLONE FICLONE +# endif #endif
#if WITH_BLKID @@ -48,6 +51,10 @@
#if HAVE_LINUX_BTRFS_H # include <linux/btrfs.h> +# define REFLINK_IOC_CLONE BTRFS_IOC_CLONE +#elif HAVE_XFS_XFS_H +# include <xfs/xfs.h> +# define REFLINK_IOC_CLONE XFS_IOC_CLONE #endif
Problem is, REFLING_IOC_CLONE is defined already at this point (by hunk above) so this redefines the macro. Fixed by squashing this in: diff --git i/src/storage/storage_util.c w/src/storage/storage_util.c index fd1239c6cb..da99043e0a 100644 --- i/src/storage/storage_util.c +++ w/src/storage/storage_util.c @@ -36,9 +36,6 @@ # ifndef FS_NOCOW_FL # define FS_NOCOW_FL 0x00800000 /* Do not cow file */ # endif -# ifdef FICLONE -# define REFLINK_IOC_CLONE FICLONE -# endif #endif #if WITH_BLKID @@ -55,6 +52,8 @@ #elif HAVE_XFS_XFS_H # include <xfs/xfs.h> # define REFLINK_IOC_CLONE XFS_IOC_CLONE +#elif defined(FICLONE) +# define REFLINK_IOC_CLONE FICLONE #endif #include "datatypes.h" Michal