blockd: don't unmount device when removing it from the list
authorRafał Miłecki <rafal@milecki.pl>
Thu, 6 Dec 2018 08:13:39 +0000 (09:13 +0100)
committerRafał Miłecki <rafal@milecki.pl>
Thu, 6 Dec 2018 08:13:39 +0000 (09:13 +0100)
commitf6a96865da9162f45ea1d482c794fe14b26ecfe1
tree6cdb4a412a0151c81dfafb41dfae3cc39666182e
parent1913feacb1ad1fb6433d316d81e2e3bee365ec19
blockd: don't unmount device when removing it from the list

Device gets removed from the list (vlist_delete()) when block calls
"hotplug" method of blockd using ubus. Right after that block unmounts
that device on its own.

blockd shouldn't care about unmounting on its own for following reasons:
1) To avoid code/behavior duplication with block
2) To keep behavior consistent with mounting (blockd doesn't mount)
3) To allow implementing more features in block (e.g. hotplug.d events)

To make unmounting the most reliable the plan is to have:
1) block receiving hotplug.d "block" subsystem events "remove"
2) blockd stopping reporting device (so we avoid new users & let
   existing ones realize mount can't be used anymore)
3) block notifying (through hotplug.d "mount" subsystem) all users about
   device being unmounted - that should stop all apps accessing it
4) block unmount device

That should allow storage users stop accessing mount point & let block
unmount device cleanly.

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
Acked-by: John Crispin <john@phrozen.org>
blockd.c