|
Zbigniew Jędrzejewski-Szmek |
930e1b |
From 925af552121e7028d432685948c2e061d86955e5 Mon Sep 17 00:00:00 2001
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
From: Lennart Poettering <lennart@poettering.net>
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
Date: Mon, 14 Oct 2013 04:59:26 +0200
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
Subject: [PATCH] util: allow trailing semicolons on
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
define_trivial_cleanup_func lines
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
Emacs C indenting really gets confused by these lines if they carry no
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
trailing semicolon, hence let's make this nicer for good old emacs. The
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
other macros which define functions already do this too, so let's copy
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
the scheme here.
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
Also, let's use an uppercase name for the macro. So far our rough rule
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
was that macros that are totally not function-like (like this ones,
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
which define a function) are uppercase. (Well, admittedly it is a rough
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
rule only, for example function and variable decorators are all
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
lower-case SINCE THE CONSTANT YELLING IN THE SOURCES WOULD SUCK, and
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
also they at least got underscore prefixes.) Also, the macros that
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
define functions that we already have are all uppercase, so let's do the
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
same here...
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
Conflicts:
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
src/gpt-auto-generator/gpt-auto-generator.c
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
---
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
src/gpt-auto-generator/gpt-auto-generator.c | 157 ++++++++++------------------
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
src/journal/journal-internal.h | 2 +-
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
src/shared/fdset.h | 2 +-
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
src/shared/set.h | 4 +-
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
src/shared/strv.h | 2 +-
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
src/shared/udev-util.h | 10 +-
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
src/shared/util.h | 19 ++--
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
src/tmpfiles/tmpfiles.c | 2 +-
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
8 files changed, 78 insertions(+), 120 deletions(-)
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
diff --git a/src/gpt-auto-generator/gpt-auto-generator.c b/src/gpt-auto-generator/gpt-auto-generator.c
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
index d2b4213..25440e7 100644
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
--- a/src/gpt-auto-generator/gpt-auto-generator.c
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+++ b/src/gpt-auto-generator/gpt-auto-generator.c
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
@@ -36,6 +36,7 @@
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
#include "missing.h"
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
#include "sd-id128.h"
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
#include "libudev.h"
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+#include "udev-util.h"
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
#include "special.h"
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
#include "unit-name.h"
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
#include "virt.h"
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
@@ -48,12 +49,12 @@
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
*
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
*/
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+#define GPT_SWAP SD_ID128_MAKE(06,57,fd,6d,a4,ab,43,c4,84,e5,09,33,c8,4b,4f,4f)
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+#define GPT_HOME SD_ID128_MAKE(93,3a,c7,e1,2e,b4,4f,13,b8,44,0e,14,e2,ae,f9,15)
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
static const char *arg_dest = "/tmp";
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
-static inline void blkid_free_probep(blkid_probe *b) {
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- if (*b)
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- blkid_free_probe(*b);
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
-}
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+DEFINE_TRIVIAL_CLEANUP_FUNC(blkid_probe, blkid_free_probe);
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
#define _cleanup_blkid_freep_probe_ _cleanup_(blkid_free_probep)
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
static int verify_gpt_partition(const char *node, sd_id128_t *type, unsigned *nr, char **fstype) {
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
@@ -113,13 +114,13 @@ static int verify_gpt_partition(const char *node, sd_id128_t *type, unsigned *nr
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
if (fstype) {
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- char *fst;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
-
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
errno = 0;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
r = blkid_probe_lookup_value(b, "TYPE", &v, NULL);
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
if (r != 0)
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
*fstype = NULL;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
else {
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+ char *fst;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
fst = strdup(v);
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
if (!fst)
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
return -ENOMEM;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
@@ -181,7 +182,7 @@ static int add_swap(const char *path, const char *fstype) {
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
}
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
static int add_home(const char *path, const char *fstype) {
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- _cleanup_free_ char *unit = NULL, *lnk = NULL;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+ _cleanup_free_ char *unit = NULL, *lnk = NULL, *fsck = NULL;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
_cleanup_fclose_ FILE *f = NULL;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
if (dir_is_empty("/home") <= 0)
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
@@ -199,19 +200,23 @@ static int add_home(const char *path, const char *fstype) {
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
return -errno;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
}
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+ fsck = unit_name_from_path_instance("systemd-fsck", path, ".service");
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+ if (!fsck)
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+ return log_oom();
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
fprintf(f,
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
"# Automatically generated by systemd-gpt-auto-generator\n\n"
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
"[Unit]\n"
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
"DefaultDependencies=no\n"
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- "After=" SPECIAL_LOCAL_FS_PRE_TARGET "\n"
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+ "Requires=%s\n"
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+ "After=" SPECIAL_LOCAL_FS_PRE_TARGET " %s\n"
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
"Conflicts=" SPECIAL_UMOUNT_TARGET "\n"
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
"Before=" SPECIAL_UMOUNT_TARGET " " SPECIAL_LOCAL_FS_TARGET "\n\n"
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
"[Mount]\n"
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
"What=%s\n"
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
"Where=/home\n"
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- "Type=%s\n"
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- "FsckPassNo=2\n",
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- path, fstype);
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+ "Type=%s\n",
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+ fsck, fsck, path, fstype);
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
fflush(f);
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
if (ferror(f)) {
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
@@ -234,97 +239,80 @@ static int add_home(const char *path, const char *fstype) {
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
}
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
static int enumerate_partitions(struct udev *udev, dev_t dev) {
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- struct udev_enumerate *e = NULL;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- struct udev_device *parent = NULL, *d = NULL;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+ struct udev_device *parent = NULL;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+ _cleanup_udev_enumerate_unref_ struct udev_enumerate *e = NULL;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+ _cleanup_udev_device_unref_ struct udev_device *d = NULL;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
struct udev_list_entry *first, *item;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
unsigned home_nr = (unsigned) -1;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
_cleanup_free_ char *home = NULL, *home_fstype = NULL;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
int r;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
e = udev_enumerate_new(udev);
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- if (!e) {
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- r = log_oom();
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- goto finish;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- }
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+ if (!e)
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+ return log_oom();
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
d = udev_device_new_from_devnum(udev, 'b', dev);
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- if (!d) {
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- r = log_oom();
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- goto finish;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- }
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+ if (!d)
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+ return log_oom();
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
parent = udev_device_get_parent(d);
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- if (!parent) {
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- r = log_oom();
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- goto finish;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- }
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+ if (!parent)
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+ return log_oom();
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
r = udev_enumerate_add_match_parent(e, parent);
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- if (r < 0) {
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- r = log_oom();
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- goto finish;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- }
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+ if (r < 0)
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+ return log_oom();
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
r = udev_enumerate_add_match_subsystem(e, "block");
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- if (r < 0) {
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- r = log_oom();
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- goto finish;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- }
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+ if (r < 0)
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+ return log_oom();
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
r = udev_enumerate_scan_devices(e);
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
if (r < 0) {
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
log_error("Failed to enumerate partitions on /dev/block/%u:%u: %s",
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
major(dev), minor(dev), strerror(-r));
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- goto finish;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+ return r;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
}
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
first = udev_enumerate_get_list_entry(e);
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
udev_list_entry_foreach(item, first) {
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
_cleanup_free_ char *fstype = NULL;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
const char *node = NULL;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- struct udev_device *q;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+ _cleanup_udev_device_unref_ struct udev_device *q;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
sd_id128_t type_id;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
unsigned nr;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
q = udev_device_new_from_syspath(udev, udev_list_entry_get_name(item));
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- if (!q) {
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- r = log_oom();
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- goto finish;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- }
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+ if (!q)
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+ return log_oom();
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
if (udev_device_get_devnum(q) == udev_device_get_devnum(d))
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- goto skip;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+ continue;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
if (udev_device_get_devnum(q) == udev_device_get_devnum(parent))
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- goto skip;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+ continue;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
node = udev_device_get_devnode(q);
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- if (!node) {
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- r = log_oom();
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- goto finish;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- }
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+ if (!node)
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+ return log_oom();
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
r = verify_gpt_partition(node, &type_id, &nr, &fstype);
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
if (r < 0) {
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
log_error("Failed to verify GPT partition %s: %s",
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
node, strerror(-r));
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- udev_device_unref(q);
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- goto finish;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+ return r;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
}
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
if (r == 0)
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- goto skip;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+ continue;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- if (sd_id128_equal(type_id, SD_ID128_MAKE(06,57,fd,6d,a4,ab,43,c4,84,e5,09,33,c8,4b,4f,4f)))
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+ if (sd_id128_equal(type_id, GPT_SWAP))
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
add_swap(node, fstype);
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- else if (sd_id128_equal(type_id, SD_ID128_MAKE(93,3a,c7,e1,2e,b4,4f,13,b8,44,0e,14,e2,ae,f9,15))) {
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
-
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+ else if (sd_id128_equal(type_id, GPT_HOME)) {
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
if (!home || nr < home_nr) {
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
free(home);
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
home = strdup(node);
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- if (!home) {
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- r = log_oom();
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- goto finish;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- }
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+ if (!home)
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+ return log_oom();
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
home_nr = nr;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
@@ -333,27 +321,16 @@ static int enumerate_partitions(struct udev *udev, dev_t dev) {
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
fstype = NULL;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
}
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
}
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
-
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- skip:
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- udev_device_unref(q);
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
}
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
if (home && home_fstype)
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
add_home(home, home_fstype);
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
-finish:
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- if (d)
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- udev_device_unref(d);
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
-
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- if (e)
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- udev_enumerate_unref(e);
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
-
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
-
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
return r;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
}
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
static int get_btrfs_block_device(const char *path, dev_t *dev) {
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- struct btrfs_ioctl_fs_info_args fsi;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+ struct btrfs_ioctl_fs_info_args fsi = {};
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
_cleanup_close_ int fd = -1;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
uint64_t id;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
@@ -364,7 +341,6 @@ static int get_btrfs_block_device(const char *path, dev_t *dev) {
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
if (fd < 0)
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
return -errno;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- zero(fsi);
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
if (ioctl(fd, BTRFS_IOC_FS_INFO, &fsi) < 0)
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
return -errno;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
@@ -373,12 +349,11 @@ static int get_btrfs_block_device(const char *path, dev_t *dev) {
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
return 0;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
for (id = 1; id <= fsi.max_id; id++) {
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- struct btrfs_ioctl_dev_info_args di;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+ struct btrfs_ioctl_dev_info_args di = {
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+ .devid = id,
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+ };
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
struct stat st;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- zero(di);
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- di.devid = id;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
-
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
if (ioctl(fd, BTRFS_IOC_DEV_INFO, &di) < 0) {
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
if (errno == ENODEV)
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
continue;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
@@ -427,44 +402,31 @@ static int get_block_device(const char *path, dev_t *dev) {
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
}
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
static int devno_to_devnode(struct udev *udev, dev_t devno, char **ret) {
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- struct udev_device *d = NULL;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+ _cleanup_udev_device_unref_ struct udev_device *d;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
const char *t;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
char *n;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- int r;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
d = udev_device_new_from_devnum(udev, 'b', devno);
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- if (!d) {
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- r = log_oom();
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- goto finish;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- }
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+ if (!d)
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+ return log_oom();
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
t = udev_device_get_devnode(d);
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- if (!t) {
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- r = -ENODEV;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- goto finish;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- }
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+ if (!t)
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+ return -ENODEV;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
n = strdup(t);
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- if (!n) {
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- r = -ENOMEM;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- goto finish;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- }
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+ if (!n)
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+ return -ENOMEM;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
*ret = n;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- r = 0;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
-
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
-finish:
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- if (d)
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- udev_device_unref(d);
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
-
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- return r;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+ return 0;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
}
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
int main(int argc, char *argv[]) {
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
_cleanup_free_ char *node = NULL;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- struct udev *udev = NULL;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+ _cleanup_udev_unref_ struct udev *udev = NULL;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
dev_t devno;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- int r;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+ int r = 0;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
if (argc > 1 && argc != 4) {
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
log_error("This program takes three or no arguments.");
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
@@ -483,13 +445,11 @@ int main(int argc, char *argv[]) {
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
if (in_initrd()) {
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
log_debug("In initrd, exiting.");
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- r = 0;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
goto finish;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
}
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
if (detect_container(NULL) > 0) {
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
log_debug("In a container, exiting.");
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- r = 0;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
goto finish;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
}
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
@@ -528,8 +488,5 @@ int main(int argc, char *argv[]) {
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
r = enumerate_partitions(udev, devno);
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
finish:
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- if (udev)
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- udev_unref(udev);
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
-
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
return r < 0 ? EXIT_FAILURE : EXIT_SUCCESS;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
}
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
diff --git a/src/journal/journal-internal.h b/src/journal/journal-internal.h
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
index 1bc912c..3355fca 100644
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
--- a/src/journal/journal-internal.h
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+++ b/src/journal/journal-internal.h
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
@@ -135,7 +135,7 @@ struct sd_journal {
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
char *journal_make_match_string(sd_journal *j);
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
void journal_print_header(sd_journal *j);
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
-define_trivial_cleanup_func(sd_journal*, sd_journal_close)
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+DEFINE_TRIVIAL_CLEANUP_FUNC(sd_journal*, sd_journal_close);
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
#define _cleanup_journal_close_ _cleanup_(sd_journal_closep)
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
#define JOURNAL_FOREACH_DATA_RETVAL(j, data, l, retval) \
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
diff --git a/src/shared/fdset.h b/src/shared/fdset.h
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
index d0dc875..b91b430 100644
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
--- a/src/shared/fdset.h
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+++ b/src/shared/fdset.h
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
@@ -48,5 +48,5 @@ int fdset_iterate(FDSet *s, Iterator *i);
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
#define FDSET_FOREACH(fd, fds, i) \
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
for ((i) = ITERATOR_FIRST, (fd) = fdset_iterate((fds), &(i)); (fd) >= 0; (fd) = fdset_iterate((fds), &(i)))
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
-define_trivial_cleanup_func(FDSet*, fdset_free)
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+DEFINE_TRIVIAL_CLEANUP_FUNC(FDSet*, fdset_free);
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
#define _cleanup_fdset_free_ _cleanup_(fdset_freep)
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
diff --git a/src/shared/set.h b/src/shared/set.h
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
index a291470..5612478 100644
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
--- a/src/shared/set.h
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+++ b/src/shared/set.h
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
@@ -73,7 +73,7 @@ char **set_get_strv(Set *s);
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
#define SET_FOREACH_BACKWARDS(e, s, i) \
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
for ((i) = ITERATOR_LAST, (e) = set_iterate_backwards((s), &(i)); (e); (e) = set_iterate_backwards((s), &(i)))
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
-define_trivial_cleanup_func(Set*, set_free)
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
-define_trivial_cleanup_func(Set*, set_free_free)
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+DEFINE_TRIVIAL_CLEANUP_FUNC(Set*, set_free);
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+DEFINE_TRIVIAL_CLEANUP_FUNC(Set*, set_free_free);
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
#define _cleanup_set_free_ _cleanup_(set_freep)
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
#define _cleanup_set_free_free_ _cleanup_(set_free_freep)
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
diff --git a/src/shared/strv.h b/src/shared/strv.h
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
index 4d117f8..f6fb033 100644
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
--- a/src/shared/strv.h
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+++ b/src/shared/strv.h
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
@@ -30,7 +30,7 @@ char *strv_find(char **l, const char *name) _pure_;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
char *strv_find_prefix(char **l, const char *name) _pure_;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
void strv_free(char **l);
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
-define_trivial_cleanup_func(char**, strv_free)
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+DEFINE_TRIVIAL_CLEANUP_FUNC(char**, strv_free);
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
#define _cleanup_strv_free_ _cleanup_(strv_freep)
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
char **strv_copy(char * const *l);
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
diff --git a/src/shared/udev-util.h b/src/shared/udev-util.h
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
index bff8f5f..27677af 100644
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
--- a/src/shared/udev-util.h
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+++ b/src/shared/udev-util.h
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
@@ -24,11 +24,11 @@
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
#include "udev.h"
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
#include "util.h"
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
-define_trivial_cleanup_func(struct udev*, udev_unref)
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
-define_trivial_cleanup_func(struct udev_device*, udev_device_unref)
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
-define_trivial_cleanup_func(struct udev_enumerate*, udev_enumerate_unref)
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
-define_trivial_cleanup_func(struct udev_event*, udev_event_unref)
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
-define_trivial_cleanup_func(struct udev_rules*, udev_rules_unref)
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+DEFINE_TRIVIAL_CLEANUP_FUNC(struct udev*, udev_unref);
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+DEFINE_TRIVIAL_CLEANUP_FUNC(struct udev_device*, udev_device_unref);
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+DEFINE_TRIVIAL_CLEANUP_FUNC(struct udev_enumerate*, udev_enumerate_unref);
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+DEFINE_TRIVIAL_CLEANUP_FUNC(struct udev_event*, udev_event_unref);
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+DEFINE_TRIVIAL_CLEANUP_FUNC(struct udev_rules*, udev_rules_unref);
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
#define _cleanup_udev_unref_ _cleanup_(udev_unrefp)
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
#define _cleanup_udev_device_unref_ _cleanup_(udev_device_unrefp)
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
diff --git a/src/shared/util.h b/src/shared/util.h
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
index 2c41765..bdbdca3 100644
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
--- a/src/shared/util.h
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+++ b/src/shared/util.h
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
@@ -555,11 +555,12 @@ static inline void freep(void *p) {
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
free(*(void**) p);
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
}
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
-#define define_trivial_cleanup_func(type, func) \
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- static inline void func##p(type *p) { \
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- if (*p) \
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- func(*p); \
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- } \
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+#define DEFINE_TRIVIAL_CLEANUP_FUNC(type, func) \
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+ static inline void func##p(type *p) { \
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+ if (*p) \
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+ func(*p); \
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+ } \
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+ struct __useless_struct_to_allow_trailing_semicolon__
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
static inline void closep(int *fd) {
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
if (*fd >= 0)
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
@@ -570,10 +571,10 @@ static inline void umaskp(mode_t *u) {
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
umask(*u);
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
}
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
-define_trivial_cleanup_func(FILE*, fclose)
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
-define_trivial_cleanup_func(FILE*, pclose)
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
-define_trivial_cleanup_func(DIR*, closedir)
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
-define_trivial_cleanup_func(FILE*, endmntent)
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+DEFINE_TRIVIAL_CLEANUP_FUNC(FILE*, fclose);
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+DEFINE_TRIVIAL_CLEANUP_FUNC(FILE*, pclose);
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+DEFINE_TRIVIAL_CLEANUP_FUNC(DIR*, closedir);
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+DEFINE_TRIVIAL_CLEANUP_FUNC(FILE*, endmntent);
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
#define _cleanup_free_ _cleanup_(freep)
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
#define _cleanup_close_ _cleanup_(closep)
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
diff --git a/src/tmpfiles/tmpfiles.c b/src/tmpfiles/tmpfiles.c
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
index 7e873af..e23847b 100644
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
--- a/src/tmpfiles/tmpfiles.c
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+++ b/src/tmpfiles/tmpfiles.c
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
@@ -998,7 +998,7 @@ static void item_free(Item *i) {
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
free(i);
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
}
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
-define_trivial_cleanup_func(Item*, item_free)
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+DEFINE_TRIVIAL_CLEANUP_FUNC(Item*, item_free);
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
#define _cleanup_item_free_ _cleanup_(item_freep)
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
static bool item_equal(Item *a, Item *b) {
|