mirror of
https://git.freebsd.org/ports.git
synced 2025-06-29 00:20:40 -04:00
51 lines
1.4 KiB
C
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
|
|
|