diff options
author | Giulio Benetti <giulio.benetti@benettiengineering.com> | 2023-04-06 13:37:57 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-04-06 12:37:57 +0100 |
commit | c60a90b73971706f525fc7e3289291636f50caa5 (patch) | |
tree | 7bc697ed727a8e650a0106ec34df9a4912648e8d | |
parent | 4cf25c27f89754e0e0310cb430dee0ddd9493c70 (diff) | |
download | fuse-c60a90b73971706f525fc7e3289291636f50caa5.tar.gz |
Fix MS_LAZYTIME not defined on uclibc and move all MS_* and UMOUNT_* (#753)
as well as <sys/mount.h> inclusion to new fuse_mount_compat.h file.
Signed-off-by: Giulio Benetti <giulio.benetti@benettiengineering.com>
-rw-r--r-- | include/fuse_mount_compat.h | 42 | ||||
-rw-r--r-- | lib/mount.c | 3 | ||||
-rw-r--r-- | lib/mount_bsd.c | 2 | ||||
-rw-r--r-- | lib/mount_util.c | 5 | ||||
-rw-r--r-- | util/fusermount.c | 24 |
5 files changed, 52 insertions, 24 deletions
diff --git a/include/fuse_mount_compat.h b/include/fuse_mount_compat.h new file mode 100644 index 0000000..0142b51 --- /dev/null +++ b/include/fuse_mount_compat.h @@ -0,0 +1,42 @@ +/* + FUSE: Filesystem in Userspace + Copyright (C) 2023 Giulio Benetti <giulio.benetti@benettiengineering.com> + + Logging API. + + This program can be distributed under the terms of the GNU LGPLv2. + See the file LICENSE +*/ + +#ifndef FUSE_MOUNT_COMPAT_H_ +#define FUSE_MOUNT_COMPAT_H_ + +#include <sys/mount.h> + +/* Some libc don't define MS_*, so define them manually + * (values taken from https://elixir.bootlin.com/linux/v4.0.9/source/include/uapi/linux/fs.h#L68 on) + */ +#ifndef MS_DIRSYNC +#define MS_DIRSYNC 128 +#endif +#ifndef MS_REC +#define MS_REC 16384 +#endif +#ifndef MS_PRIVATE +#define MS_PRIVATE (1<<18) +#endif +#ifndef MS_LAZYTIME +#define MS_LAZYTIME (1<<25) +#endif + +#ifndef UMOUNT_DETACH +#define UMOUNT_DETACH 0x00000002 /* Just detach from the tree */ +#endif +#ifndef UMOUNT_NOFOLLOW +#define UMOUNT_NOFOLLOW 0x00000008 /* Don't follow symlink on umount */ +#endif +#ifndef UMOUNT_UNUSED +#define UMOUNT_UNUSED 0x80000000 /* Flag guaranteed to be unused */ +#endif + +#endif /* FUSE_MOUNT_COMPAT_H_ */ diff --git a/lib/mount.c b/lib/mount.c index 1f1ee86..3990243 100644 --- a/lib/mount.c +++ b/lib/mount.c @@ -25,7 +25,8 @@ #include <sys/socket.h> #include <sys/un.h> #include <sys/wait.h> -#include <sys/mount.h> + +#include "fuse_mount_compat.h" #ifdef __NetBSD__ #include <perfuse.h> diff --git a/lib/mount_bsd.c b/lib/mount_bsd.c index 35f3634..73abc67 100644 --- a/lib/mount_bsd.c +++ b/lib/mount_bsd.c @@ -14,7 +14,7 @@ #include "fuse_opt.h" #include <sys/param.h> -#include <sys/mount.h> +#include "fuse_mount_compat.h" #include <sys/stat.h> #include <sys/wait.h> diff --git a/lib/mount_util.c b/lib/mount_util.c index daf7b5e..8027a2e 100644 --- a/lib/mount_util.c +++ b/lib/mount_util.c @@ -10,6 +10,7 @@ #include "fuse_config.h" #include "mount_util.h" + #include <stdio.h> #include <unistd.h> #include <stdlib.h> @@ -27,7 +28,9 @@ #endif #include <sys/stat.h> #include <sys/wait.h> -#include <sys/mount.h> + +#include "fuse_mount_compat.h" + #include <sys/param.h> #if defined(__NetBSD__) || defined(__FreeBSD__) || defined(__DragonFly__) || defined(__FreeBSD_kernel__) diff --git a/util/fusermount.c b/util/fusermount.c index 7a6bc24..850cf6b 100644 --- a/util/fusermount.c +++ b/util/fusermount.c @@ -24,7 +24,9 @@ #include <mntent.h> #include <sys/wait.h> #include <sys/stat.h> -#include <sys/mount.h> + +#include "fuse_mount_compat.h" + #include <sys/fsuid.h> #include <sys/socket.h> #include <sys/utsname.h> @@ -36,26 +38,6 @@ #define FUSE_DEV "/dev/fuse" -#ifndef MS_DIRSYNC -#define MS_DIRSYNC 128 -#endif -#ifndef MS_REC -#define MS_REC 16384 -#endif -#ifndef MS_PRIVATE -#define MS_PRIVATE (1<<18) -#endif - -#ifndef UMOUNT_DETACH -#define UMOUNT_DETACH 0x00000002 /* Just detach from the tree */ -#endif -#ifndef UMOUNT_NOFOLLOW -#define UMOUNT_NOFOLLOW 0x00000008 /* Don't follow symlink on umount */ -#endif -#ifndef UMOUNT_UNUSED -#define UMOUNT_UNUSED 0x80000000 /* Flag guaranteed to be unused */ -#endif - static const char *progname; static int user_allow_other = 0; |