Merge pull request #10556 from yuwata/udev-event-cleanup-2
udev-event: several fixes for previous PR
This commit is contained in:
commit
0aeff581cc
|
@ -281,9 +281,7 @@ int dissect_image(
|
||||||
/* Count the partitions enumerated by the kernel */
|
/* Count the partitions enumerated by the kernel */
|
||||||
n = 0;
|
n = 0;
|
||||||
FOREACH_DEVICE(e, q) {
|
FOREACH_DEVICE(e, q) {
|
||||||
dev_t qn;
|
if (sd_device_get_devnum(q, NULL) < 0)
|
||||||
|
|
||||||
if (sd_device_get_devnum(q, &qn) < 0)
|
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
if (!device_is_block(q))
|
if (!device_is_block(q))
|
||||||
|
|
|
@ -475,26 +475,26 @@ static int on_spawn_io(sd_event_source *s, int fd, uint32_t revents, void *userd
|
||||||
|
|
||||||
static int on_spawn_timeout(sd_event_source *s, uint64_t usec, void *userdata) {
|
static int on_spawn_timeout(sd_event_source *s, uint64_t usec, void *userdata) {
|
||||||
Spawn *spawn = userdata;
|
Spawn *spawn = userdata;
|
||||||
char timeout[FORMAT_TIMESTAMP_RELATIVE_MAX];
|
char timeout[FORMAT_TIMESPAN_MAX];
|
||||||
|
|
||||||
assert(spawn);
|
assert(spawn);
|
||||||
|
|
||||||
kill_and_sigcont(spawn->pid, SIGKILL);
|
kill_and_sigcont(spawn->pid, SIGKILL);
|
||||||
|
|
||||||
log_error("Spawned process '%s' ["PID_FMT"] timed out after %s, killing", spawn->cmd, spawn->pid,
|
log_error("Spawned process '%s' ["PID_FMT"] timed out after %s, killing", spawn->cmd, spawn->pid,
|
||||||
format_timestamp_relative(timeout, sizeof(timeout), spawn->timeout_usec));
|
format_timespan(timeout, sizeof(timeout), spawn->timeout_usec, USEC_PER_SEC));
|
||||||
|
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int on_spawn_timeout_warning(sd_event_source *s, uint64_t usec, void *userdata) {
|
static int on_spawn_timeout_warning(sd_event_source *s, uint64_t usec, void *userdata) {
|
||||||
Spawn *spawn = userdata;
|
Spawn *spawn = userdata;
|
||||||
char timeout[FORMAT_TIMESTAMP_RELATIVE_MAX];
|
char timeout[FORMAT_TIMESPAN_MAX];
|
||||||
|
|
||||||
assert(spawn);
|
assert(spawn);
|
||||||
|
|
||||||
log_warning("Spawned process '%s' ["PID_FMT"] is taking longer than %s to complete", spawn->cmd, spawn->pid,
|
log_warning("Spawned process '%s' ["PID_FMT"] is taking longer than %s to complete", spawn->cmd, spawn->pid,
|
||||||
format_timestamp_relative(timeout, sizeof(timeout), spawn->timeout_warn_usec));
|
format_timespan(timeout, sizeof(timeout), spawn->timeout_warn_usec, USEC_PER_SEC));
|
||||||
|
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
@ -727,11 +727,10 @@ static int rename_netif(struct udev_event *event) {
|
||||||
static int update_devnode(struct udev_event *event) {
|
static int update_devnode(struct udev_event *event) {
|
||||||
sd_device *dev = event->dev->device;
|
sd_device *dev = event->dev->device;
|
||||||
const char *action;
|
const char *action;
|
||||||
dev_t devnum;
|
|
||||||
bool apply;
|
bool apply;
|
||||||
int r;
|
int r;
|
||||||
|
|
||||||
r = sd_device_get_devnum(dev, &devnum);
|
r = sd_device_get_devnum(dev, NULL);
|
||||||
if (r == -ENOENT)
|
if (r == -ENOENT)
|
||||||
return 0;
|
return 0;
|
||||||
if (r < 0)
|
if (r < 0)
|
||||||
|
@ -782,7 +781,6 @@ static void event_execute_rules_on_remove(
|
||||||
struct udev_rules *rules) {
|
struct udev_rules *rules) {
|
||||||
|
|
||||||
sd_device *dev = event->dev->device;
|
sd_device *dev = event->dev->device;
|
||||||
dev_t devnum;
|
|
||||||
int r;
|
int r;
|
||||||
|
|
||||||
r = device_read_db_force(dev);
|
r = device_read_db_force(dev);
|
||||||
|
@ -797,18 +795,14 @@ static void event_execute_rules_on_remove(
|
||||||
if (r < 0)
|
if (r < 0)
|
||||||
log_device_debug_errno(dev, r, "Failed to delete database under /run/udev/data/, ignoring: %m");
|
log_device_debug_errno(dev, r, "Failed to delete database under /run/udev/data/, ignoring: %m");
|
||||||
|
|
||||||
r = sd_device_get_devnum(dev, &devnum);
|
if (sd_device_get_devnum(dev, NULL) >= 0)
|
||||||
if (r < 0) {
|
|
||||||
if (r != -ENOENT)
|
|
||||||
log_device_debug_errno(dev, r, "Failed to get devnum, ignoring: %m");
|
|
||||||
} else
|
|
||||||
(void) udev_watch_end(dev);
|
(void) udev_watch_end(dev);
|
||||||
|
|
||||||
(void) udev_rules_apply_to_event(rules, event,
|
(void) udev_rules_apply_to_event(rules, event,
|
||||||
timeout_usec, timeout_warn_usec,
|
timeout_usec, timeout_warn_usec,
|
||||||
properties_list);
|
properties_list);
|
||||||
|
|
||||||
if (major(devnum) > 0)
|
if (sd_device_get_devnum(dev, NULL) >= 0)
|
||||||
(void) udev_node_remove(dev);
|
(void) udev_node_remove(dev);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -819,7 +813,6 @@ int udev_event_execute_rules(struct udev_event *event,
|
||||||
_cleanup_(sd_device_unrefp) sd_device *clone = NULL;
|
_cleanup_(sd_device_unrefp) sd_device *clone = NULL;
|
||||||
sd_device *dev = event->dev->device;
|
sd_device *dev = event->dev->device;
|
||||||
const char *subsystem, *action;
|
const char *subsystem, *action;
|
||||||
dev_t devnum;
|
|
||||||
int r;
|
int r;
|
||||||
|
|
||||||
assert(event);
|
assert(event);
|
||||||
|
@ -847,7 +840,7 @@ int udev_event_execute_rules(struct udev_event *event,
|
||||||
if (!event->dev_db)
|
if (!event->dev_db)
|
||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
|
|
||||||
r = sd_device_get_devnum(dev, &devnum);
|
r = sd_device_get_devnum(dev, NULL);
|
||||||
if (r < 0) {
|
if (r < 0) {
|
||||||
if (r != -ENOENT)
|
if (r != -ENOENT)
|
||||||
log_device_debug_errno(dev, r, "Failed to get devnum, ignoring: %m");
|
log_device_debug_errno(dev, r, "Failed to get devnum, ignoring: %m");
|
||||||
|
|
Loading…
Reference in a new issue