]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
shared: add a single definition of libmount cleanup functions
authorZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Thu, 4 Apr 2019 10:54:19 +0000 (12:54 +0200)
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Fri, 5 Apr 2019 08:18:21 +0000 (10:18 +0200)
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.

src/core/mount.c
src/shared/libmount-util.h [new file with mode: 0644]
src/shared/meson.build
src/shutdown/umount.c

index 965dc51db5a49fb07a6cf532d9855a8b810dbdf6..c1b0c29d8070da8e969cda2113b633932bc7d1cc 100644 (file)
@@ -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 (file)
index 0000000..7d94468
--- /dev/null
@@ -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);
index 47cbc9932cc78e1728caef91efcafa961c188f98..bb28bcac2bbf5603648c88619c780f5ecd9f986d 100644 (file)
@@ -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
index 0ed358bb32988c133e13ef759780e287dd7cc2a3..3d6cfa08f2f4fb6dba3d1f4d49f17a0c9cb14c4a 100644 (file)
@@ -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);