summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>2019-04-04 12:54:19 +0200
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>2019-04-05 10:18:21 +0200
commitfb36b1339be0211d5d4cd6d035df704bdd589597 (patch)
tree07dcf695d2ff9e420e7b5a89784e18573082f2b6
parent949082ac214409365c01781fbf18ba08593918ff (diff)
downloadsystemd-fb36b1339be0211d5d4cd6d035df704bdd589597.tar.gz
shared: add a single definition of libmount cleanup functions
Use a trivial header file to share mnt_free_tablep and mnt_free_iterp. It would be nicer put this in mount-util.h, but libmount.h is not in the default include path, and the build system would have to be adjusted to pass pkg-config include path in various places, and it's just not worth the trouble. A separate header file works nicely.
-rw-r--r--src/core/mount.c6
-rw-r--r--src/shared/libmount-util.h10
-rw-r--r--src/shared/meson.build1
-rw-r--r--src/shutdown/umount.c7
4 files changed, 13 insertions, 11 deletions
diff --git a/src/core/mount.c b/src/core/mount.c
index 965dc51db5..c1b0c29d80 100644
--- a/src/core/mount.c
+++ b/src/core/mount.c
@@ -5,8 +5,6 @@
#include <stdio.h>
#include <sys/epoll.h>
-#include <libmount.h>
-
#include "sd-messages.h"
#include "alloc-util.h"
@@ -17,6 +15,7 @@
#include "exit-status.h"
#include "format-util.h"
#include "fstab-util.h"
+#include "libmount-util.h"
#include "log.h"
#include "manager.h"
#include "mkdir.h"
@@ -36,9 +35,6 @@
#define RETRY_UMOUNT_MAX 32
-DEFINE_TRIVIAL_CLEANUP_FUNC(struct libmnt_table*, mnt_free_table);
-DEFINE_TRIVIAL_CLEANUP_FUNC(struct libmnt_iter*, mnt_free_iter);
-
static const UnitActiveState state_translation_table[_MOUNT_STATE_MAX] = {
[MOUNT_DEAD] = UNIT_INACTIVE,
[MOUNT_MOUNTING] = UNIT_ACTIVATING,
diff --git a/src/shared/libmount-util.h b/src/shared/libmount-util.h
new file mode 100644
index 0000000000..7d94468e52
--- /dev/null
+++ b/src/shared/libmount-util.h
@@ -0,0 +1,10 @@
+/* SPDX-License-Identifier: LGPL-2.1+ */
+#pragma once
+
+/* This needs to be after sys/mount.h */
+#include <libmount.h>
+
+#include "macro.h"
+
+DEFINE_TRIVIAL_CLEANUP_FUNC(struct libmnt_table*, mnt_free_table);
+DEFINE_TRIVIAL_CLEANUP_FUNC(struct libmnt_iter*, mnt_free_iter);
diff --git a/src/shared/meson.build b/src/shared/meson.build
index 47cbc9932c..bb28bcac2b 100644
--- a/src/shared/meson.build
+++ b/src/shared/meson.build
@@ -95,6 +95,7 @@ shared_sources = files('''
json-internal.h
json.c
json.h
+ libmount-util.h
lockfile-util.c
lockfile-util.h
log-link.h
diff --git a/src/shutdown/umount.c b/src/shutdown/umount.c
index 0ed358bb32..3d6cfa08f2 100644
--- a/src/shutdown/umount.c
+++ b/src/shutdown/umount.c
@@ -13,9 +13,6 @@
#include <sys/types.h>
#include <unistd.h>
-/* This needs to be after sys/mount.h :( */
-#include <libmount.h>
-
#include "sd-device.h"
#include "alloc-util.h"
@@ -25,6 +22,7 @@
#include "escape.h"
#include "fd-util.h"
#include "fstab-util.h"
+#include "libmount-util.h"
#include "linux-3.13/dm-ioctl.h"
#include "mount-setup.h"
#include "mount-util.h"
@@ -38,9 +36,6 @@
#include "util.h"
#include "virt.h"
-DEFINE_TRIVIAL_CLEANUP_FUNC(struct libmnt_table*, mnt_free_table);
-DEFINE_TRIVIAL_CLEANUP_FUNC(struct libmnt_iter*, mnt_free_iter);
-
static void mount_point_free(MountPoint **head, MountPoint *m) {
assert(head);
assert(m);