On Tue, 2017-04-18 at 17:19 +0000, Nir Soffer wrote:
On Tue, Apr 18, 2017 at 12:23 AM Pavel Gashev 
<[email protected]<mailto:[email protected]>> wrote:

Nir,

A process can chdir into mount point and then lazy umount it. Filesystem 
remains mounted while the process exists and current directory is on mounted 
filesystem.

# struncate -s 1g masterfs.img
# mkfs.ext4 masterfs.img
# mkdir masterfs
# mount -o loop masterfs.img masterfs
# cd masterfs
# umount -l .
# touch file
# ls
# cd ..
# ls masterfs

Interesting idea!

The only issue I see if not having a way to tell if the file system was actually
unmounted. Does process termination guarantee that the file system was
unmounted?

You can double check that by deactivating underlying LV. It should not be busy.

As I understand it unmounts FS as soon as all inodes are closed. Since killing 
of process is closing all open inodes, you can be sure that file system is 
unmounted if there are no other processes. Of course this is a place for race 
conditions. For example, unmounting can be stuck some time if underlying 
storage is unresponsive. Multipath should drop all IOs with EIO. VDSM has to 
wait enough time after acquiring the lock before mounting masterfs.

Do you know if the behaviour is documented somewhere?

umount(8):

-l, --lazy
Lazy unmount.  Detach the filesystem from the filesystem hierarchy now, and 
cleanup all references to the filesystem as soon as it is not busy anymore.  
(Requires kernel 2.4.11 or later.)


_______________________________________________
Users mailing list
[email protected]
http://lists.ovirt.org/mailman/listinfo/users

Reply via email to