mount / unmount and mountcheckdirs()
Andriy Gapon
avg at FreeBSD.org
Fri Sep 15 16:37:08 UTC 2017
On 15/09/2017 19:02, Edward Napierala wrote:
> 2017-09-15 12:56 GMT+01:00 Andriy Gapon <avg at freebsd.org <mailto:avg at freebsd.org>>:
>
> On 15/09/2017 13:08, Edward Napierala wrote:
> > It does. For example:
> >
> > [trasz at v2:~]% cd /media/md0
> > [trasz at v2:/media/md0]% mount
> > /dev/ada0s1a on / (ufs, local, noatime, journaled soft-updates)
> > devfs on /dev (devfs, local, multilabel)
> > map -hosts on /net (autofs)
> > map -media on /media (autofs)
>
> Interesting, I thought that /dev/md0 would get mounted as soon as /media/md0 is
> looked up. But maybe that would be sub-optimal for some common scenarios...
> FWIW, ZFS snapshots get auto-mounted under .zfs as soon as there is a lookup.
>
>
> You really don't want it to work that way. If you have a directory with thousands
> of mountpoints inside, you don't want to mount all of them every time you do "ls"
> in that directory.
Well, "ls" wouldn't trigger the mounting as it's just VOP_READDIR in the parent
vnode, "ls -l" (or any other options that require file attributes) is a
different story :-)
> Same problem with mounting on "cd". That's why autofs triggers
> in three cases: in VOP_READDIR(9), VOP_GETATTR(9), and VOP_LOOKUP(9)
> with the vnode as a parent dir.
Well, "cd" is also a different story, you can't cd to hundreds of directories at
once. Of course, the filesystem doesn't really know if it's "cd" or something
else that triggered VOP_LOOKUP. Although VOP_ACCESS could be used as a hint, it
is a rather weak hint.
In any case, I prefer the mount-on-lookup approach as it is "more seamless".
--
Andriy Gapon
More information about the freebsd-arch
mailing list