chiark
/
gitweb
/
~ianmdlvl
/
elogind.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
journal: add public API call sd_journal_get_events()
[elogind.git]
/
src
/
core
/
umount.c
diff --git
a/src/core/umount.c
b/src/core/umount.c
index c7b6cee07975db037d56c1c6ec0d96f2db2a38ae..95e47e3c5ac4a9a084dbb7621f7e2b84c7ce1f7d 100644
(file)
--- a/
src/core/umount.c
+++ b/
src/core/umount.c
@@
-219,7
+219,8
@@
static int loopback_list_get(MountPoint **head) {
}
if (udev_enumerate_add_match_subsystem(e, "block") < 0 ||
}
if (udev_enumerate_add_match_subsystem(e, "block") < 0 ||
- udev_enumerate_add_match_sysname(e, "loop*") < 0) {
+ udev_enumerate_add_match_sysname(e, "loop*") < 0 ||
+ udev_enumerate_add_match_sysattr(e, "loop/backing_file", NULL) < 0) {
r = -EIO;
goto finish;
}
r = -EIO;
goto finish;
}
@@
-378,12
+379,14
@@
static int delete_loopback(const char *device) {
}
static int delete_dm(dev_t devnum) {
}
static int delete_dm(dev_t devnum) {
- int fd, r;
+ int _cleanup_close_ fd = -1;
+ int r;
struct dm_ioctl dm;
assert(major(devnum) != 0);
struct dm_ioctl dm;
assert(major(devnum) != 0);
- if ((fd = open("/dev/mapper/control", O_RDWR|O_CLOEXEC)) < 0)
+ fd = open("/dev/mapper/control", O_RDWR|O_CLOEXEC);
+ if (fd < 0)
return -errno;
zero(dm);
return -errno;
zero(dm);
@@
-395,8
+398,6
@@
static int delete_dm(dev_t devnum) {
dm.dev = devnum;
r = ioctl(fd, DM_DEV_REMOVE, &dm);
dm.dev = devnum;
r = ioctl(fd, DM_DEV_REMOVE, &dm);
- close_nointr_nofail(fd);
-
return r >= 0 ? 0 : -errno;
}
return r >= 0 ? 0 : -errno;
}