summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRafał Miłecki2018-12-12 14:24:34 +0000
committerRafał Miłecki2018-12-28 22:10:32 +0000
commit3bb3352a5f6c1cffd8a487b92eb762c857df75ed (patch)
treef76d815b1c015c3fade597f69d91809ff114e2e7
parent28753b3f027084fa2ca184bc8f8c54db36cc2421 (diff)
downloadfstools-3bb3352a5f6c1cffd8a487b92eb762c857df75ed.tar.gz
blockd: unmount device explicitly when it disappears
To keep autofs behavior consistent blockd should request both: mounting and unmounting when needed. It's important as autofs-related actions may require slightly different handling. Without this patch: 1) autofs mounts were handled using TYPE_AUTOFS 2) autofs unmounts were handled using TYPE_HOTPLUG Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
-rw-r--r--blockd.c13
1 files changed, 12 insertions, 1 deletions
diff --git a/blockd.c b/blockd.c
index 29d16f2..a00a5b3 100644
--- a/blockd.c
+++ b/blockd.c
@@ -111,8 +111,19 @@ block(char *cmd, char *action, char *device)
static void
device_free(struct device *device)
{
- if (device->autofs && device->target)
+ char *mp;
+
+ if (!device->autofs)
+ return;
+
+ if (device->target)
unlink(device->target);
+
+ mp = _find_mount_point(device->name);
+ if (mp) {
+ block("autofs", "remove", device->name);
+ free(mp);
+ }
}
static void