mount: try lazy unmount if normal one fails
authorRafał Miłecki <rafal@milecki.pl>
Wed, 21 Feb 2018 12:32:16 +0000 (13:32 +0100)
committerRafał Miłecki <rafal@milecki.pl>
Mon, 26 Feb 2018 05:11:58 +0000 (06:11 +0100)
commit97da4edeb9eb3b26c9843d3a5ab605e7bcf2573f
treee4e75c3300a624c0eca0499ea62d9f828c4236a7
parent1b62489ceaf0270887d60db13b103c2b8bee33a1
mount: try lazy unmount if normal one fails

If umount call fails (e.g. because of some application accessing old
path) the only chance of getting mount entry cleaned is receiving autofs
expire packet. This isn't fully reliable:
1) Sometimes expire can happen before closing all handles. In such case
   a second unmount try will fail as well and there won't be a next one.
2) Expire happens after specified timeout. If device reappears quickly
   (e.g. due to being replugged or USB controller restart) it may be
   worth having old mount cleaned up earlier for better user experience.

This problem can be easily handled by using MNT_DETACH (lazy) umount as
a fallback.

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
mount.c