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(a)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