|
Zbigniew Jędrzejewski-Szmek |
930e1b |
From 48ee0228ec2bcfcb48866b717ac8a5a8dbbd506e Mon Sep 17 00:00:00 2001
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek@in.waw.pl>
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
Date: Sat, 12 Oct 2013 20:28:21 -0400
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
Subject: [PATCH] Introduce udev object cleanup functions
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
Conflicts:
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
src/gpt-auto-generator/gpt-auto-generator.c <-- skipped
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
src/shared/fdset.h
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
src/shared/util.h
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
---
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
Makefile.am | 1 +
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
src/backlight/backlight.c | 55 ++++++---------
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
src/core/umount.c | 143 ++++++++++++++-------------------------
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
src/cryptsetup/cryptsetup.c | 27 +++-----
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
src/fsck/fsck.c | 13 ++--
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
src/journal/journal-internal.h | 7 +-
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
src/login/sysfs-show.c | 22 ++----
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
src/readahead/readahead-common.c | 66 +++++++-----------
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
src/shared/fdset.h | 3 +
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
src/shared/install.c | 6 +-
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
src/shared/set.h | 10 +--
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
src/shared/strv.h | 7 +-
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
src/shared/udev-util.h | 37 ++++++++++
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
src/shared/util.h | 32 ++++-----
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
src/test/test-libudev.c | 8 +--
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
src/test/test-udev.c | 21 +++---
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
src/tmpfiles/tmpfiles.c | 5 +-
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
17 files changed, 194 insertions(+), 269 deletions(-)
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
create mode 100644 src/shared/udev-util.h
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
diff --git a/Makefile.am b/Makefile.am
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
index efe5aa3..910e780 100644
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
--- a/Makefile.am
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+++ b/Makefile.am
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
@@ -648,6 +648,7 @@ libsystemd_shared_la_SOURCES = \
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
src/shared/sparse-endian.h \
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
src/shared/util.c \
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
src/shared/util.h \
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+ src/shared/udev-util.h \
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
src/shared/virt.c \
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
src/shared/virt.h \
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
src/shared/efivars.c \
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
diff --git a/src/backlight/backlight.c b/src/backlight/backlight.c
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
index f22deed..c45b2d0 100644
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
--- a/src/backlight/backlight.c
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+++ b/src/backlight/backlight.c
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
@@ -19,15 +19,15 @@
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
along with systemd; If not, see <http://www.gnu.org/licenses/>.
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
***/
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
-#include <libudev.h>
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
-
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
#include "util.h"
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
#include "mkdir.h"
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
#include "fileio.h"
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+#include "libudev.h"
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+#include "udev-util.h"
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
int main(int argc, char *argv[]) {
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- struct udev *udev = NULL;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- struct udev_device *device = NULL;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+ _cleanup_udev_unref_ struct udev *udev = NULL;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+ _cleanup_udev_device_unref_ struct udev_device *device = NULL;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
_cleanup_free_ char *saved = NULL;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
int r;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
@@ -45,13 +45,13 @@ int main(int argc, char *argv[]) {
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
r = mkdir_p("/var/lib/systemd/backlight", 0755);
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
if (r < 0) {
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
log_error("Failed to create backlight directory: %s", strerror(-r));
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- goto finish;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+ return EXIT_FAILURE;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
}
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
udev = udev_new();
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
if (!udev) {
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- r = log_oom();
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- goto finish;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+ log_oom();
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+ return EXIT_FAILURE;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
}
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
errno = 0;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
@@ -59,26 +59,24 @@ int main(int argc, char *argv[]) {
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
if (!device)
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
device = udev_device_new_from_subsystem_sysname(udev, "leds", argv[2]);
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
if (!device) {
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- if (errno != 0) {
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+ if (errno != 0)
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
log_error("Failed to get backlight device '%s': %m", argv[2]);
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- r = -errno;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- } else
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+ else
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
r = log_oom();
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- goto finish;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+ return EXIT_FAILURE;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
}
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
if (!streq_ptr(udev_device_get_subsystem(device), "backlight") &&
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
!streq_ptr(udev_device_get_subsystem(device), "leds")) {
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
log_error("Not a backlight device: %s", argv[2]);
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- r = -ENODEV;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- goto finish;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+ return EXIT_FAILURE;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
}
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
saved = strappend("/var/lib/systemd/backlight/", udev_device_get_sysname(device));
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
if (!saved) {
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- r = log_oom();
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- goto finish;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+ log_oom();
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+ return EXIT_FAILURE;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
}
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
if (streq(argv[1], "load")) {
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
@@ -87,19 +85,17 @@ int main(int argc, char *argv[]) {
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
r = read_one_line_file(saved, &value);
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
if (r < 0) {
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- if (r == -ENOENT) {
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- r = 0;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- goto finish;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- }
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+ if (r == -ENOENT)
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+ return EXIT_SUCCESS;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
log_error("Failed to read %s: %s", saved, strerror(-r));
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- goto finish;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+ return EXIT_FAILURE;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
}
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
r = udev_device_set_sysattr_value(device, "brightness", value);
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
if (r < 0) {
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
log_error("Failed to write system attribute: %s", strerror(-r));
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- goto finish;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+ return EXIT_FAILURE;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
}
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
} else if (streq(argv[1], "save")) {
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
@@ -108,28 +104,19 @@ int main(int argc, char *argv[]) {
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
value = udev_device_get_sysattr_value(device, "brightness");
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
if (!value) {
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
log_error("Failed to read system attribute: %s", strerror(-r));
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- goto finish;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+ return EXIT_FAILURE;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
}
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
r = write_string_file(saved, value);
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
if (r < 0) {
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
log_error("Failed to write %s: %s", saved, strerror(-r));
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- goto finish;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+ return EXIT_FAILURE;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
}
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
} else {
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
log_error("Unknown verb %s.", argv[1]);
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- r = -EINVAL;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- goto finish;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+ return EXIT_FAILURE;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
}
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
-finish:
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- if (device)
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- udev_device_unref(device);
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
-
|
|
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 |
+ return EXIT_SUCCESS;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
}
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
diff --git a/src/core/umount.c b/src/core/umount.c
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
index 1e95ad7..99dbe27 100644
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
--- a/src/core/umount.c
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+++ b/src/core/umount.c
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
@@ -27,7 +27,6 @@
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
#include <unistd.h>
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
#include <linux/loop.h>
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
#include <linux/dm-ioctl.h>
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
-#include <libudev.h>
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
#include "list.h"
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
#include "mount-setup.h"
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
@@ -35,6 +34,8 @@
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
#include "path-util.h"
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
#include "util.h"
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
#include "virt.h"
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+#include "libudev.h"
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+#include "udev-util.h"
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
typedef struct MountPoint {
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
char *path;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
@@ -201,145 +202,108 @@ finish:
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
}
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
static int loopback_list_get(MountPoint **head) {
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- int r;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- struct udev *udev;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- struct udev_enumerate *e = NULL;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+ _cleanup_udev_unref_ struct udev *udev;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+ _cleanup_udev_enumerate_unref_ struct udev_enumerate *e = NULL;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
struct udev_list_entry *item = NULL, *first = NULL;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
assert(head);
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- if (!(udev = udev_new())) {
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- r = -ENOMEM;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- goto finish;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- }
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+ udev = udev_new();
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+ if (!udev)
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+ return -ENOMEM;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- if (!(e = udev_enumerate_new(udev))) {
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- r = -ENOMEM;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- goto finish;
|
|
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 |
+ return -ENOMEM;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
if (udev_enumerate_add_match_subsystem(e, "block") < 0 ||
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
udev_enumerate_add_match_sysname(e, "loop*") < 0 ||
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- udev_enumerate_add_match_sysattr(e, "loop/backing_file", NULL) < 0) {
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- r = -EIO;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- goto finish;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- }
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+ udev_enumerate_add_match_sysattr(e, "loop/backing_file", NULL) < 0)
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+ return -EIO;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- if (udev_enumerate_scan_devices(e) < 0) {
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- r = -EIO;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- goto finish;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- }
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+ if (udev_enumerate_scan_devices(e) < 0)
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+ return -EIO;
|
|
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 |
MountPoint *lb;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- struct udev_device *d;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+ _cleanup_udev_device_unref_ struct udev_device *d;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
char *loop;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
const char *dn;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- if (!(d = udev_device_new_from_syspath(udev, udev_list_entry_get_name(item)))) {
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- r = -ENOMEM;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- goto finish;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- }
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+ d = udev_device_new_from_syspath(udev, udev_list_entry_get_name(item));
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+ if (!d)
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+ return -ENOMEM;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- if (!(dn = udev_device_get_devnode(d))) {
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- udev_device_unref(d);
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+ dn = udev_device_get_devnode(d);
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+ if (!dn)
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
continue;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- }
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
loop = strdup(dn);
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- udev_device_unref(d);
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
-
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- if (!loop) {
|
|
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 (!loop)
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+ return -ENOMEM;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- if (!(lb = new0(MountPoint, 1))) {
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+ lb = new0(MountPoint, 1);
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+ if (!lb) {
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
free(loop);
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- r = -ENOMEM;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- goto finish;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+ return -ENOMEM;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
}
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
lb->path = loop;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
LIST_PREPEND(MountPoint, mount_point, *head, lb);
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
}
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- r = 0;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
-
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
-finish:
|
|
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 |
- if (udev)
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- udev_unref(udev);
|
|
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 |
static int dm_list_get(MountPoint **head) {
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- int r;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- struct udev *udev;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- struct udev_enumerate *e = NULL;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+ _cleanup_udev_unref_ struct udev *udev;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+ _cleanup_udev_enumerate_unref_ struct udev_enumerate *e = NULL;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
struct udev_list_entry *item = NULL, *first = NULL;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
assert(head);
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- if (!(udev = udev_new())) {
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- r = -ENOMEM;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- goto finish;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- }
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+ udev = udev_new();
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+ if (!udev)
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+ return -ENOMEM;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- if (!(e = udev_enumerate_new(udev))) {
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- r = -ENOMEM;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- goto finish;
|
|
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 |
+ return -ENOMEM;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
if (udev_enumerate_add_match_subsystem(e, "block") < 0 ||
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- udev_enumerate_add_match_sysname(e, "dm-*") < 0) {
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- r = -EIO;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- goto finish;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- }
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+ udev_enumerate_add_match_sysname(e, "dm-*") < 0)
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+ return -EIO;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- if (udev_enumerate_scan_devices(e) < 0) {
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- r = -EIO;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- goto finish;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- }
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+ if (udev_enumerate_scan_devices(e) < 0)
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+ return -EIO;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
first = udev_enumerate_get_list_entry(e);
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
udev_list_entry_foreach(item, first) {
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
MountPoint *m;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- struct udev_device *d;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+ _cleanup_udev_device_unref_ struct udev_device *d;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
dev_t devnum;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
char *node;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
const char *dn;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- if (!(d = udev_device_new_from_syspath(udev, udev_list_entry_get_name(item)))) {
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- r = -ENOMEM;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- goto finish;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- }
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+ d = udev_device_new_from_syspath(udev, udev_list_entry_get_name(item));
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+ if (!d)
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+ return -ENOMEM;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
devnum = udev_device_get_devnum(d);
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
dn = udev_device_get_devnode(d);
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
-
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- if (major(devnum) == 0 || !dn) {
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- udev_device_unref(d);
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+ if (major(devnum) == 0 || !dn)
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
continue;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- }
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
node = strdup(dn);
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- udev_device_unref(d);
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
-
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- if (!node) {
|
|
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 (!node)
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+ return -ENOMEM;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- if (!(m = new(MountPoint, 1))) {
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+ m = new(MountPoint, 1);
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+ if (!m) {
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
free(node);
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- r = -ENOMEM;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- goto finish;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+ return -ENOMEM;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
}
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
m->path = node;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
@@ -347,16 +311,7 @@ static int dm_list_get(MountPoint **head) {
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
LIST_PREPEND(MountPoint, mount_point, *head, m);
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
}
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- r = 0;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
-
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
-finish:
|
|
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 |
- if (udev)
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- udev_unref(udev);
|
|
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 |
static int delete_loopback(const char *device) {
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
diff --git a/src/cryptsetup/cryptsetup.c b/src/cryptsetup/cryptsetup.c
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
index 769c3e4..39f7db7 100644
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
--- a/src/cryptsetup/cryptsetup.c
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+++ b/src/cryptsetup/cryptsetup.c
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
@@ -25,7 +25,6 @@
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
#include <mntent.h>
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
#include <libcryptsetup.h>
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
-#include <libudev.h>
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
#include "fileio.h"
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
#include "log.h"
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
@@ -34,6 +33,8 @@
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
#include "strv.h"
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
#include "ask-password-api.h"
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
#include "def.h"
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+#include "libudev.h"
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+#include "udev-util.h"
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
static const char *opt_type = NULL; /* CRYPT_LUKS1, CRYPT_TCRYPT or CRYPT_PLAIN */
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
static char *opt_cipher = NULL;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
@@ -184,7 +185,7 @@ static void log_glue(int level, const char *msg, void *usrptr) {
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
log_debug("%s", msg);
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
}
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
-static char *disk_description(const char *path) {
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+static char* disk_description(const char *path) {
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
static const char name_fields[] = {
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
"ID_PART_ENTRY_NAME\0"
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
@@ -193,10 +194,9 @@ static char *disk_description(const char *path) {
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
"ID_MODEL\0"
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
};
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- struct udev *udev = NULL;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- struct udev_device *device = NULL;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+ _cleanup_udev_unref_ struct udev *udev = NULL;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+ _cleanup_udev_device_unref_ struct udev_device *device = NULL;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
struct stat st;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- char *description = NULL;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
const char *i;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
assert(path);
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
@@ -213,26 +213,17 @@ static char *disk_description(const char *path) {
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
device = udev_device_new_from_devnum(udev, 'b', st.st_rdev);
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
if (!device)
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- goto finish;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+ return NULL;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
NULSTR_FOREACH(i, name_fields) {
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
const char *name;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
name = udev_device_get_property_value(device, i);
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- if (!isempty(name)) {
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- description = strdup(name);
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- break;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- }
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+ if (!isempty(name))
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+ return strdup(name);
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
}
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
-finish:
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- if (device)
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- udev_device_unref(device);
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
-
|
|
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 description;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+ return NULL;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
}
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
static char *disk_mount_point(const char *label) {
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
diff --git a/src/fsck/fsck.c b/src/fsck/fsck.c
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
index e23ddc5..9b4e555 100644
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
--- a/src/fsck/fsck.c
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+++ b/src/fsck/fsck.c
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
@@ -27,7 +27,6 @@
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
#include <fcntl.h>
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
#include <sys/file.h>
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
-#include <libudev.h>
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
#include <dbus/dbus.h>
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
#include "util.h"
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
@@ -36,6 +35,8 @@
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
#include "bus-errors.h"
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
#include "virt.h"
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
#include "fileio.h"
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+#include "libudev.h"
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+#include "udev-util.h"
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
static bool arg_skip = false;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
static bool arg_force = false;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
@@ -241,8 +242,8 @@ int main(int argc, char *argv[]) {
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
int i = 0, r = EXIT_FAILURE, q;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
pid_t pid;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
siginfo_t status;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- struct udev *udev = NULL;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- struct udev_device *udev_device = NULL;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+ _cleanup_udev_unref_ struct udev *udev = NULL;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+ _cleanup_udev_device_unref_ struct udev_device *udev_device = NULL;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
const char *device;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
bool root_directory;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
int progress_pipe[2] = { -1, -1 };
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
@@ -393,12 +394,6 @@ int main(int argc, char *argv[]) {
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
touch("/run/systemd/quotacheck");
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
finish:
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- if (udev_device)
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- udev_device_unref(udev_device);
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
-
|
|
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 |
close_pipe(progress_pipe);
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
return r;
|
|
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 5bc6535..1bc912c 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,11 +135,8 @@ 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 |
-static inline void journal_closep(sd_journal **j) {
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- sd_journal_close(*j);
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
-}
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
-
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
-#define _cleanup_journal_close_ _cleanup_(journal_closep)
|
|
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 |
for (sd_journal_restart_data(j); ((retval) = sd_journal_enumerate_data((j), &(data), &(l))) > 0; )
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
diff --git a/src/login/sysfs-show.c b/src/login/sysfs-show.c
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
index 3c03bd1..7c1adfa 100644
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
--- a/src/login/sysfs-show.c
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+++ b/src/login/sysfs-show.c
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
@@ -26,6 +26,7 @@
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
#include "util.h"
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
#include "sysfs-show.h"
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
#include "path-util.h"
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+#include "udev-util.h"
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
static int show_sysfs_one(
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
struct udev *udev,
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
@@ -143,9 +144,9 @@ static int show_sysfs_one(
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
}
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
int show_sysfs(const char *seat, const char *prefix, unsigned n_columns) {
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- struct udev *udev;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+ _cleanup_udev_unref_ struct udev *udev;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+ _cleanup_udev_enumerate_unref_ struct udev_enumerate *e = NULL;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
struct udev_list_entry *first = NULL;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- struct udev_enumerate *e;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
int r;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
if (n_columns <= 0)
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
@@ -162,10 +163,8 @@ int show_sysfs(const char *seat, const char *prefix, unsigned n_columns) {
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
return -ENOMEM;
|
|
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 = -ENOMEM;
|
|
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 ENOMEM;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
if (!streq(seat, "seat0"))
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
r = udev_enumerate_add_match_tag(e, seat);
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
@@ -173,22 +172,15 @@ int show_sysfs(const char *seat, const char *prefix, unsigned n_columns) {
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
r = udev_enumerate_add_match_tag(e, "seat");
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
if (r < 0)
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- goto finish;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+ return r;
|
|
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 |
- goto finish;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+ return r;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
first = udev_enumerate_get_list_entry(e);
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
if (first)
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
show_sysfs_one(udev, seat, &first, "/", prefix, n_columns);
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
-finish:
|
|
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 |
- if (udev)
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- udev_unref(udev);
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
-
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
return r;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
}
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
diff --git a/src/readahead/readahead-common.c b/src/readahead/readahead-common.c
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
index a234a89..aea1fbe 100644
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
--- a/src/readahead/readahead-common.c
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+++ b/src/readahead/readahead-common.c
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
@@ -27,13 +27,14 @@
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
#include <fcntl.h>
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
#include <sys/mman.h>
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
#include <unistd.h>
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
-#include <libudev.h>
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
#include "log.h"
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
#include "readahead-common.h"
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
#include "util.h"
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
#include "missing.h"
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
#include "fileio.h"
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+#include "libudev.h"
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+#include "udev-util.h"
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
int file_verify(int fd, const char *fn, off_t file_size_max, struct stat *st) {
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
assert(fd >= 0);
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
@@ -60,9 +61,9 @@ int file_verify(int fd, const char *fn, off_t file_size_max, struct stat *st) {
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
int fs_on_ssd(const char *p) {
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
struct stat st;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- struct udev *udev = NULL;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- struct udev_device *udev_device = NULL, *look_at = NULL;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- bool b = false;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+ _cleanup_udev_unref_ struct udev *udev = NULL;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+ _cleanup_udev_device_unref_ struct udev_device *udev_device = NULL;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+ struct udev_device *look_at = NULL;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
const char *devtype, *rotational, *model, *id;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
int r;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
@@ -128,7 +129,7 @@ int fs_on_ssd(const char *p) {
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
udev_device = udev_device_new_from_devnum(udev, 'b', st.st_dev);
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
if (!udev_device)
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- goto finish;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+ return false;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
devtype = udev_device_get_property_value(udev_device, "DEVTYPE");
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
if (devtype && streq(devtype, "partition"))
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
@@ -137,46 +138,34 @@ int fs_on_ssd(const char *p) {
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
look_at = udev_device;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
if (!look_at)
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- goto finish;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+ return false;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
/* First, try high-level property */
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
id = udev_device_get_property_value(look_at, "ID_SSD");
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- if (id) {
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- b = streq(id, "1");
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- goto finish;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- }
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+ if (id)
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+ return streq(id, "1");
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
/* Second, try kernel attribute */
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
rotational = udev_device_get_sysattr_value(look_at, "queue/rotational");
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- if (rotational) {
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- b = streq(rotational, "0");
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- goto finish;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- }
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+ if (rotational)
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+ return streq(rotational, "0");
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
/* Finally, fallback to heuristics */
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
look_at = udev_device_get_parent(look_at);
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
if (!look_at)
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- goto finish;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+ return false;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
model = udev_device_get_sysattr_value(look_at, "model");
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
if (model)
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- b = !!strstr(model, "SSD");
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
-
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
-finish:
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- if (udev_device)
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- udev_device_unref(udev_device);
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
-
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- if (udev)
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- udev_unref(udev);
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+ return !!strstr(model, "SSD");
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- return b;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+ return false;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
}
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
int fs_on_read_only(const char *p) {
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
struct stat st;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- struct udev *udev = NULL;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- struct udev_device *udev_device = NULL;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- bool b = false;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+ _cleanup_udev_unref_ struct udev *udev = NULL;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+ _cleanup_udev_device_unref_ struct udev_device *udev_device = NULL;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
const char *read_only;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
assert(p);
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
@@ -187,24 +176,19 @@ int fs_on_read_only(const char *p) {
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
if (major(st.st_dev) == 0)
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
return false;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- if (!(udev = udev_new()))
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+ udev = udev_new();
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+ if (!udev)
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
return -ENOMEM;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- if (!(udev_device = udev_device_new_from_devnum(udev, 'b', st.st_dev)))
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- goto finish;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
-
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- if ((read_only = udev_device_get_sysattr_value(udev_device, "ro")))
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- if ((b = streq(read_only, "1")))
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- goto finish;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
-
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
-finish:
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- if (udev_device)
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- udev_device_unref(udev_device);
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+ udev_device = udev_device_new_from_devnum(udev, 'b', st.st_dev);
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+ if (!udev_device)
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+ return false;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- if (udev)
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- udev_unref(udev);
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+ read_only = udev_device_get_sysattr_value(udev_device, "ro");
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+ if (read_only)
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+ return streq(read_only, "1");
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- return b;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+ return false;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
}
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
bool enough_ram(void) {
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
diff --git a/src/shared/fdset.h b/src/shared/fdset.h
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
index a7bd5e2..d0dc875 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 |
@@ -47,3 +47,6 @@ int fdset_iterate(FDSet *s, Iterator *i);
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
|
|
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 _cleanup_fdset_free_ _cleanup_(fdset_freep)
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
diff --git a/src/shared/install.c b/src/shared/install.c
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
index 9722ed4..b9c85b7 100644
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
--- a/src/shared/install.c
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+++ b/src/shared/install.c
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
@@ -44,10 +44,8 @@ typedef struct {
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
Hashmap *have_installed;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
} InstallContext;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
-#define _cleanup_lookup_paths_free_ \
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- __attribute__((cleanup(lookup_paths_free)))
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
-#define _cleanup_install_context_done_ \
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- __attribute__((cleanup(install_context_done)))
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+#define _cleanup_lookup_paths_free_ _cleanup_(lookup_paths_free)
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+#define _cleanup_install_context_done_ _cleanup_(install_context_done)
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
static int lookup_paths_init_from_scope(LookupPaths *paths, UnitFileScope scope) {
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
assert(paths);
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
diff --git a/src/shared/set.h b/src/shared/set.h
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
index e5d46e9..a291470 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 |
@@ -28,19 +28,13 @@
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
* for each set use. */
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
#include "hashmap.h"
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+#include "util.h"
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
typedef struct Set Set;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
Set *set_new(hash_func_t hash_func, compare_func_t compare_func);
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
void set_free(Set* s);
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
-static inline void set_freep(Set **s) {
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- set_free(*s);
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
-}
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
-
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
void set_free_free(Set *s);
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
-static inline void set_free_freep(Set **s) {
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- set_free_free(*s);
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
-}
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
Set* set_copy(Set *s);
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
int set_ensure_allocated(Set **s, hash_func_t hash_func, compare_func_t compare_func);
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
@@ -79,5 +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 _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 d1f2a0e..4d117f8 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 |
@@ -24,16 +24,13 @@
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
#include <stdarg.h>
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
#include <stdbool.h>
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
-#include "macro.h"
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+#include "util.h"
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
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 |
-static inline void strv_freep(char ***l) {
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- strv_free(*l);
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
-}
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
-
|
|
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 |
new file mode 100644
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
index 0000000..bff8f5f
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
--- /dev/null
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+++ b/src/shared/udev-util.h
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
@@ -0,0 +1,37 @@
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+#pragma once
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+/***
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+ This file is part of systemd.
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+ Copyright 2013 Zbigniew Jędrzejewski-Szmek
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+ systemd is free software; you can redistribute it and/or modify it
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+ under the terms of the GNU Lesser General Public License as published by
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+ the Free Software Foundation; either version 2.1 of the License, or
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+ (at your option) any later version.
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+ systemd is distributed in the hope that it will be useful, but
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+ WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+ Lesser General Public License for more details.
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+ You should have received a copy of the GNU Lesser General Public License
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+ along with systemd; If not, see <http://www.gnu.org/licenses/>.
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+***/
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+
|
|
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 |
+
|
|
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 |
+#define _cleanup_udev_enumerate_unref_ _cleanup_(udev_enumerate_unrefp)
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+#define _cleanup_udev_event_unref_ _cleanup_(udev_event_unrefp)
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+#define _cleanup_udev_rules_unref_ _cleanup_(udev_rules_unrefp)
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
diff --git a/src/shared/util.h b/src/shared/util.h
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
index 222abe0..2c41765 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 |
@@ -39,6 +39,7 @@
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
#include <stddef.h>
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
#include <unistd.h>
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
#include <locale.h>
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+#include <mntent.h>
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
#include "macro.h"
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
#include "time-util.h"
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
@@ -554,37 +555,34 @@ 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 |
-static inline void fclosep(FILE **f) {
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- if (*f)
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- fclose(*f);
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
-}
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
-
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
-static inline void pclosep(FILE **f) {
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- if (*f)
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- pclose(*f);
|
|
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 |
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
static inline void closep(int *fd) {
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
if (*fd >= 0)
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
close_nointr_nofail(*fd);
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
}
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
-static inline void closedirp(DIR **d) {
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- if (*d)
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- closedir(*d);
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
-}
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
-
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
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 |
+
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
#define _cleanup_free_ _cleanup_(freep)
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
-#define _cleanup_fclose_ _cleanup_(fclosep)
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
-#define _cleanup_pclose_ _cleanup_(pclosep)
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
#define _cleanup_close_ _cleanup_(closep)
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
-#define _cleanup_closedir_ _cleanup_(closedirp)
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
#define _cleanup_umask_ _cleanup_(umaskp)
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
#define _cleanup_globfree_ _cleanup_(globfree)
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+#define _cleanup_fclose_ _cleanup_(fclosep)
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+#define _cleanup_pclose_ _cleanup_(pclosep)
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+#define _cleanup_closedir_ _cleanup_(closedirp)
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+#define _cleanup_endmntent_ _cleanup_(endmntentp)
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
_malloc_ _alloc_(1, 2) static inline void *malloc_multiply(size_t a, size_t b) {
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
if (_unlikely_(b == 0 || a > ((size_t) -1) / b))
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
diff --git a/src/test/test-libudev.c b/src/test/test-libudev.c
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
index 716767b..ab7d5a9 100644
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
--- a/src/test/test-libudev.c
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+++ b/src/test/test-libudev.c
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
@@ -29,6 +29,7 @@
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
#include <sys/epoll.h>
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
#include "libudev.h"
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+#include "udev-util.h"
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
#include "util.h"
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
#define ARRAY_SIZE(x) (sizeof(x) / sizeof((x)[0]))
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
@@ -117,7 +118,7 @@ static void print_device(struct udev_device *device)
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
static int test_device(struct udev *udev, const char *syspath)
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
{
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- struct udev_device *device;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+ _cleanup_udev_device_unref_ struct udev_device *device;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
printf("looking at device: %s\n", syspath);
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
device = udev_device_new_from_syspath(udev, syspath);
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
@@ -126,13 +127,13 @@ static int test_device(struct udev *udev, const char *syspath)
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
return -1;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
}
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
print_device(device);
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- udev_device_unref(device);
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
return 0;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
}
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
static int test_device_parents(struct udev *udev, const char *syspath)
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
{
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- struct udev_device *device;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+ _cleanup_udev_device_unref_ struct udev_device *device;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
struct udev_device *device_parent;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
printf("looking at device: %s\n", syspath);
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
@@ -153,7 +154,6 @@ static int test_device_parents(struct udev *udev, const char *syspath)
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
print_device(device_parent);
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
device_parent = udev_device_get_parent(device_parent);
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
} while (device_parent != NULL);
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- udev_device_unref(device);
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
return 0;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
}
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
diff --git a/src/test/test-udev.c b/src/test/test-udev.c
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
index 52b61b4..17825f1 100644
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
--- a/src/test/test-udev.c
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+++ b/src/test/test-udev.c
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
@@ -34,6 +34,7 @@
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
#include "missing.h"
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
#include "udev.h"
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+#include "udev-util.h"
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
void udev_main_log(struct udev *udev, int priority,
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
const char *file, int line, const char *fn,
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
@@ -82,10 +83,10 @@ out:
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
int main(int argc, char *argv[])
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
{
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- struct udev *udev;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- struct udev_event *event = NULL;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- struct udev_device *dev = NULL;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- struct udev_rules *rules = NULL;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+ _cleanup_udev_unref_ struct udev *udev = NULL;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+ _cleanup_udev_event_unref_ struct udev_event *event = NULL;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+ _cleanup_udev_device_unref_ struct udev_device *dev = NULL;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+ _cleanup_udev_rules_unref_ struct udev_rules *rules = NULL;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
char syspath[UTIL_PATH_SIZE];
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
const char *devpath;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
const char *action;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
@@ -98,7 +99,8 @@ int main(int argc, char *argv[])
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
udev = udev_new();
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
if (udev == NULL)
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- exit(EXIT_FAILURE);
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+ return EXIT_FAILURE;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
log_debug("version %s\n", VERSION);
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
label_init("/dev");
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
@@ -160,12 +162,7 @@ int main(int argc, char *argv[])
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
out:
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
if (event != NULL && event->fd_signal >= 0)
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
close(event->fd_signal);
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- udev_event_unref(event);
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- udev_device_unref(dev);
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- udev_rules_unref(rules);
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
label_finish();
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- udev_unref(udev);
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- if (err != 0)
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- return EXIT_FAILURE;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- return EXIT_SUCCESS;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
+ return err ? EXIT_FAILURE : EXIT_SUCCESS;
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
}
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
diff --git a/src/tmpfiles/tmpfiles.c b/src/tmpfiles/tmpfiles.c
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
index 239e56b..7e873af 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,10 +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 |
-static inline void item_freep(Item **i) {
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- if (*i)
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
- item_free(*i);
|
|
Zbigniew Jędrzejewski-Szmek |
930e1b |
-}
|
|
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) {
|