summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKarel Zak2016-12-08 14:29:44 +0100
committerKarel Zak2016-12-08 15:27:24 +0100
commit5c493bd92f1a6858e9cb5c98d667b0aabd945b28 (patch)
tree9e9f8d4dad977cb52c281aaf42b8138d3efdf896
parentlibmount: introduce X-* comments (diff)
downloadkernel-qcow2-util-linux-5c493bd92f1a6858e9cb5c98d667b0aabd945b28.tar.gz
kernel-qcow2-util-linux-5c493bd92f1a6858e9cb5c98d667b0aabd945b28.tar.xz
kernel-qcow2-util-linux-5c493bd92f1a6858e9cb5c98d667b0aabd945b28.zip
libmount: use x-systemd options as X-*
The previous patch introduces X-* options namespace for options that have to be maintained in user space. Unfortunately, systemd users already use mount options that are necessary by umount or another operations. The conclusion from discussion with systemd guys is to store all the systemd options in userspace. It seems better to add one line exception to libmount than force all fstab users to rename x-systemd to X-systemd. Addresses: https://github.com/systemd/systemd/pull/3904 Signed-off-by: Karel Zak <kzak@redhat.com>
-rw-r--r--configure.ac1
-rw-r--r--libmount/src/optmap.c7
-rw-r--r--sys-utils/mount.84
3 files changed, 12 insertions, 0 deletions
diff --git a/configure.ac b/configure.ac
index 08e06ffab..e0240b322 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1971,6 +1971,7 @@ AS_IF([test "x$with_systemd" != xno], [
[AC_MSG_ERROR([systemd expected but libsystemd not found])],
[*:yes],
AC_DEFINE([HAVE_LIBSYSTEMD], [1], [Define if libsystemd is available])
+ AC_DEFINE([HAVE_SYSTEMD], [1], [Define if systemd should be supported])
)
])
AM_CONDITIONAL([HAVE_SYSTEMD], [test "x$have_systemd" = xyes])
diff --git a/libmount/src/optmap.c b/libmount/src/optmap.c
index 6fdaa7a41..114eb994e 100644
--- a/libmount/src/optmap.c
+++ b/libmount/src/optmap.c
@@ -160,6 +160,13 @@ static const struct libmnt_optmap userspace_opts_map[] =
{ "comment=", MNT_MS_COMMENT, MNT_NOHLPS | MNT_NOMTAB },/* fstab comment only */
+ /*
+ * systemd assumes that x-systemd options namespace is available for umount,
+ * let's use the options as X-*
+ */
+#ifdef HAVE_SYSTEMD
+ { "x-systemd", MNT_MS_XPERSIST, MNT_NOHLPS | MNT_PREFIX }, /* like X-* */
+#endif
{ "X-", MNT_MS_XPERSIST, MNT_NOHLPS | MNT_PREFIX }, /* X- persistent comments (utab) */
{ "x-", MNT_MS_XCOMMENT, MNT_NOHLPS | MNT_NOMTAB | MNT_PREFIX }, /* x- fstab only comments */
diff --git a/sys-utils/mount.8 b/sys-utils/mount.8
index 7f45ca7db..36e7ce650 100644
--- a/sys-utils/mount.8
+++ b/sys-utils/mount.8
@@ -1154,6 +1154,10 @@ that maintain mount options in user space is a bad idea, because it's necessary
to link all tools that use the options with libmount and there is no guarantee that the
options will be always available (for example after a move mount operation or in
unshared namespace).
+
+Note that x-systemd mount options are maintained as X-* options, the rename is
+unnecessary to keep existing fstab settings backwardly compatible.
+
.TP
.BR x-mount.mkdir [ = \fImode\fR ]
Allow to make a target directory (mountpoint). The optional argument