summaryrefslogtreecommitdiff
path: root/filesystems/libntfs/patches/patch-ntfsprogs_ntfsclone.c
diff options
context:
space:
mode:
Diffstat (limited to 'filesystems/libntfs/patches/patch-ntfsprogs_ntfsclone.c')
-rw-r--r--filesystems/libntfs/patches/patch-ntfsprogs_ntfsclone.c55
1 files changed, 55 insertions, 0 deletions
diff --git a/filesystems/libntfs/patches/patch-ntfsprogs_ntfsclone.c b/filesystems/libntfs/patches/patch-ntfsprogs_ntfsclone.c
new file mode 100644
index 00000000000..4d3e1a5674c
--- /dev/null
+++ b/filesystems/libntfs/patches/patch-ntfsprogs_ntfsclone.c
@@ -0,0 +1,55 @@
+$NetBSD: patch-ntfsprogs_ntfsclone.c,v 1.1 2014/05/19 12:22:06 adam Exp $
+
+--- ntfsprogs/ntfsclone.c.orig 2014-02-15 14:07:52.000000000 +0000
++++ ntfsprogs/ntfsclone.c
+@@ -68,6 +68,19 @@
+ */
+ #define NTFS_DO_NOT_CHECK_ENDIANS
+
++#ifdef __NetBSD__
++# include <sys/param.h>
++ /* NetBSD versions later than 2.99.9 have statvfs(2) instead of statfs(2) */
++# if __NetBSD_Version__ >= 299000900
++# include <sys/statvfs.h>
++# define F_TYPE f_fsid
++# else
++# define F_TYPE f_type
++# endif
++#else
++# define F_TYPE f_type
++#endif
++
+ #include "debug.h"
+ #include "types.h"
+ #include "support.h"
+@@ -161,8 +174,12 @@ static struct {
+ char *output;
+ char *volume;
+ #ifndef NO_STATFS
++#if defined(__NetBSD__) && (__NetBSD_Version__ >= 299000900)
++ struct statvfs stfs;
++#else
+ struct statfs stfs;
+ #endif
++#endif
+ } opt;
+
+ struct bitmap {
+@@ -818,7 +835,7 @@ static void copy_cluster(int rescue, u64
+ #ifndef NO_STATFS
+ int err = errno;
+ perr_printf("Write failed");
+- if (err == EIO && opt.stfs.f_type == 0x517b)
++ if (err == EIO && opt.stfs.F_TYPE == 0x517b)
+ Printf("Apparently you tried to clone to a remote "
+ "Windows computer but they don't\nhave "
+ "efficient sparse file handling by default. "
+@@ -2238,7 +2255,7 @@ static void set_filesize(s64 filesize)
+ Printf("WARNING: Couldn't get filesystem type: "
+ "%s\n", strerror(errno));
+ else
+- fs_type = opt.stfs.f_type;
++ fs_type = opt.stfs.F_TYPE;
+
+ if (fs_type == 0x52654973)
+ Printf("WARNING: You're using ReiserFS, it has very poor "