diff options
author | Lennart Poettering <lennart@poettering.net> | 2010-04-21 06:01:13 +0200 |
---|---|---|
committer | Lennart Poettering <lennart@poettering.net> | 2010-04-21 06:01:13 +0200 |
commit | 701cc384c283206a29b21e4e7302e5cf5f2d9433 (patch) | |
tree | 0e8e47d12cb3ea47794bad390658c900ed61d691 /automount.c | |
parent | 48507e6621596b0d5503fad6cd9e0685917603f5 (diff) |
manager: automatically GC unreferenced units
Diffstat (limited to 'automount.c')
-rw-r--r-- | automount.c | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/automount.c b/automount.c index 7aa55b4f9f..b124fc5b0e 100644 --- a/automount.c +++ b/automount.c @@ -149,7 +149,7 @@ static int automount_load(Unit *u) { if ((r = unit_load_related_unit(u, ".mount", (Unit**) &a->mount)) < 0) return r; - if ((r = unit_add_dependency(u, UNIT_BEFORE, UNIT(a->mount))) < 0) + if ((r = unit_add_dependency(u, UNIT_BEFORE, UNIT(a->mount), true)) < 0) return r; } @@ -640,13 +640,20 @@ static const char *automount_sub_state_to_string(Unit *u) { return automount_state_to_string(AUTOMOUNT(u)->state); } +static bool automount_check_gc(Unit *u) { + Automount *a = AUTOMOUNT(u); + + assert(a); + + return UNIT_VTABLE(UNIT(a->mount))->check_gc(UNIT(a->mount)); +} + static void automount_fd_event(Unit *u, int fd, uint32_t events, Watch *w) { + Automount *a = AUTOMOUNT(u); union autofs_v5_packet_union packet; ssize_t l; int r; - Automount *a = AUTOMOUNT(u); - assert(a); assert(fd == a->pipe_fd); @@ -729,6 +736,8 @@ const UnitVTable automount_vtable = { .active_state = automount_active_state, .sub_state_to_string = automount_sub_state_to_string, + .check_gc = automount_check_gc, + .fd_event = automount_fd_event, .bus_message_handler = bus_automount_message_handler, |