ports/sysutils/fusefs-unionfs/files/patch-src__unionfs.c
Martin Wilke 9705488d2b - Update to 1.0
- Pass maintainership to submitter

PR:		205617
Submitted by:	 Brendan Molloy
2015-12-31 14:37:05 +00:00

51 lines
1.4 KiB
C

--- src/unionfs.c.orig 2015-01-14 10:08:20 UTC
+++ src/unionfs.c
@@ -65,6 +65,13 @@
#include "conf.h"
#include "uioctl.h"
+// Patch pushed upstream:
+// https://github.com/rpodgorny/unionfs-fuse/pull/40
+// Remove this as soon as pushed into a release.
+#ifdef IOCPARM_LEN
+#define _IOC_SIZE(nr) IOCPARM_LEN(nr)
+#endif
+
static struct fuse_opt unionfs_opts[] = {
FUSE_OPT_KEY("chroot=%s,", KEY_CHROOT),
FUSE_OPT_KEY("cow", KEY_COW),
@@ -92,7 +99,12 @@ static int unionfs_chmod(const char *pat
char p[PATHLEN_MAX];
if (BUILD_PATH(p, uopt.branches[i].path, path)) RETURN(-ENAMETOOLONG);
+// Unsure of origin. Patch needs review.
+#if __FreeBSD__
+ int res = lchmod(p, mode);
+#else
int res = chmod(p, mode);
+#endif
if (res == -1) RETURN(-errno);
RETURN(0);
@@ -671,6 +683,9 @@ static int unionfs_truncate(const char *
RETURN(0);
}
+// Patch pushed upstream:
+// https://github.com/rpodgorny/unionfs-fuse/pull/39
+// Remove this as soon as pushed into a release.
static int unionfs_utimens(const char *path, const struct timespec ts[2]) {
DBG("%s\n", path);
@@ -685,9 +700,9 @@ static int unionfs_utimens(const char *p
#else
struct timeval tv[2];
tv[0].tv_sec = ts[0].tv_sec;
- tv[0].tv_usec = ts[0].tv_nsec * 1000;
+ tv[0].tv_usec = ts[0].tv_nsec / 1000;
tv[1].tv_sec = ts[1].tv_sec;
- tv[1].tv_usec = ts[1].tv_nsec * 1000;
+ tv[1].tv_usec = ts[1].tv_nsec / 1000;
int res = utimes(p, tv);
#endif