mirror of
https://github.com/systemd/systemd.git
synced 2025-01-12 13:18:14 +03:00
Merge pull request #2017 from haraldh/nobinddevice2
core: Do not bind a mount unit to a device, if it was from mountinfo
This commit is contained in:
commit
97839ed6b7
@ -335,7 +335,7 @@ static int mount_add_device_links(Mount *m) {
|
||||
if (mount_is_auto(p) && UNIT(m)->manager->running_as == MANAGER_SYSTEM)
|
||||
device_wants_mount = true;
|
||||
|
||||
r = unit_add_node_link(UNIT(m), p->what, device_wants_mount);
|
||||
r = unit_add_node_link(UNIT(m), p->what, device_wants_mount, m->from_fragment ? UNIT_BINDS_TO : UNIT_REQUIRES);
|
||||
if (r < 0)
|
||||
return r;
|
||||
|
||||
|
@ -289,7 +289,7 @@ static int socket_add_device_link(Socket *s) {
|
||||
return 0;
|
||||
|
||||
t = strjoina("/sys/subsystem/net/devices/", s->bind_to_device);
|
||||
return unit_add_node_link(UNIT(s), t, false);
|
||||
return unit_add_node_link(UNIT(s), t, false, UNIT_BINDS_TO);
|
||||
}
|
||||
|
||||
static int socket_add_default_dependencies(Socket *s) {
|
||||
|
@ -202,7 +202,7 @@ static int swap_add_device_links(Swap *s) {
|
||||
return 0;
|
||||
|
||||
if (is_device_path(s->what))
|
||||
return unit_add_node_link(UNIT(s), s->what, UNIT(s)->manager->running_as == MANAGER_SYSTEM);
|
||||
return unit_add_node_link(UNIT(s), s->what, UNIT(s)->manager->running_as == MANAGER_SYSTEM, UNIT_BINDS_TO);
|
||||
else
|
||||
/* File based swap devices need to be ordered after
|
||||
* systemd-remount-fs.service, since they might need a
|
||||
|
@ -2840,7 +2840,7 @@ int unit_deserialize(Unit *u, FILE *f, FDSet *fds) {
|
||||
}
|
||||
}
|
||||
|
||||
int unit_add_node_link(Unit *u, const char *what, bool wants) {
|
||||
int unit_add_node_link(Unit *u, const char *what, bool wants, UnitDependency dep) {
|
||||
Unit *device;
|
||||
_cleanup_free_ char *e = NULL;
|
||||
int r;
|
||||
@ -2867,7 +2867,9 @@ int unit_add_node_link(Unit *u, const char *what, bool wants) {
|
||||
if (r < 0)
|
||||
return r;
|
||||
|
||||
r = unit_add_two_dependencies(u, UNIT_AFTER, u->manager->running_as == MANAGER_SYSTEM ? UNIT_BINDS_TO : UNIT_WANTS, device, true);
|
||||
r = unit_add_two_dependencies(u, UNIT_AFTER,
|
||||
u->manager->running_as == MANAGER_SYSTEM ? dep : UNIT_WANTS,
|
||||
device, true);
|
||||
if (r < 0)
|
||||
return r;
|
||||
|
||||
|
@ -528,7 +528,7 @@ int unit_serialize_item_escaped(Unit *u, FILE *f, const char *key, const char *v
|
||||
int unit_serialize_item_fd(Unit *u, FILE *f, FDSet *fds, const char *key, int fd);
|
||||
void unit_serialize_item_format(Unit *u, FILE *f, const char *key, const char *value, ...) _printf_(4,5);
|
||||
|
||||
int unit_add_node_link(Unit *u, const char *what, bool wants);
|
||||
int unit_add_node_link(Unit *u, const char *what, bool wants, UnitDependency d);
|
||||
|
||||
int unit_coldplug(Unit *u);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user