12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- From 061d1a51097c3c025ff46173f10aa135f9a610d4 Mon Sep 17 00:00:00 2001
- From: Karel Zak <kzak@redhat.com>
- Date: Thu, 22 Mar 2018 14:05:17 +0100
- Subject: libmount: include sys/mount.h only if necessary
- Addresses: https://github.com/systemd/systemd/issues/8507
- Signed-off-by: Karel Zak <kzak@redhat.com>
- ---
- libmount/src/libmount.h.in | 9 ++++++++-
- sys-utils/fstrim.c | 4 +---
- 2 files changed, 9 insertions(+), 4 deletions(-)
- diff --git a/libmount/src/libmount.h.in b/libmount/src/libmount.h.in
- index 8f323fcbf..11fd759fa 100644
- --- a/libmount/src/libmount.h.in
- +++ b/libmount/src/libmount.h.in
- @@ -28,7 +28,14 @@ extern "C" {
- #include <stdio.h>
- #include <mntent.h>
- #include <sys/types.h>
- -#include <sys/mount.h>
- +
- +/* Make sure libc MS_* definitions are used by default. Note that MS_* flags
- + * may be already defined by linux/fs.h or another file -- in this case we
- + * don't want to include sys/mount.h at all to avoid collisions.
- + */
- +#ifndef MS_RDONLY
- +# include <sys/mount.h>
- +#endif
-
- #define LIBMOUNT_VERSION "@LIBMOUNT_VERSION@"
- #define LIBMOUNT_MAJOR_VERSION @LIBMOUNT_MAJOR_VERSION@
- diff --git a/sys-utils/fstrim.c b/sys-utils/fstrim.c
- index 53ac594c0..ce52063e1 100644
- --- a/sys-utils/fstrim.c
- +++ b/sys-utils/fstrim.c
- @@ -35,6 +35,7 @@
-
- #include <sys/ioctl.h>
- #include <sys/stat.h>
- +#include <linux/fs.h>
-
- #include "nls.h"
- #include "strutils.h"
- @@ -46,9 +47,6 @@
- #include <libmount.h>
-
-
- -/* We cannot include linux/fs.h due to MS_* constants collision with
- - * sys/mount.h (and libmount.h)
- - */
- #ifndef FITRIM
- struct fstrim_range {
- uint64_t start;
|