From: Ian Kent <raven@themaw.net>
To: Phil Dumont <phil@solidstatescientific.com>
Cc: autofs@linux.kernel.org
Subject: Re: Should stat(2)ing an automount mount point trigger the automount?
Date: Mon, 25 May 2009 13:11:38 +0800 [thread overview]
Message-ID: <4A1A288A.4030309@themaw.net> (raw)
In-Reply-To: <67349.32791243014169920.JavaMail.root@zimbra.solidstatescientific.com>
Phil Dumont wrote:
> On a CentOS 5.4 installation, I ran this command:
5.4?
How so?
>
> find /net/fs/export/vtrak3b/keeper/
>
> ...and it yielded this message to stderr:
>
> find: WARNING: Hard link count is wrong for /net/fs/export/vtrak3b/keeper/: this may be a bug in your filesystem driver. Automatically turning on find's -noleaf option. Earlier results may have failed to include directories that should have been searched.
>
> Apparently, as soon as you access /net/host, if host is exporting
> any paths other than /, the automount daemon will create a mount
> point /net/host/path/to/export for every path exported by host,
> but doesn't actually mount anything until you read the
> exported/automounted directory. (The host 'fs' is exporting
> /export/vtrak3b/keeper, along with some other non-root
> directories.)
>
> And it would seem that stat(2)ing the mount point does not
> trigger the automount, so the stat(2) reports on the mount
> point, not the directory that's going to be mounted there.
>
> It would seem that find stat(2)s a directory before it opendir(3)s
> it. So the stat(2) of keeper saw a hard link count of 2 (which is
> correct for the empty mount point), but when find started reading the
> directory, that triggered the automount, and it was now accessing the
> mounted directory instead of the mount point, and apparently noticed
> the discrepancy.
That is exactly what happens, it is deliberate and it has been that way
for a long time.
autofs must not accurately honour stat(2) in certain cases because the
widespread use of colour ls leads to mount storms.
For example, if you have an indirect map that uses the "browse" option
then all the mount point directories will exist within the autofs
managed directory. If we honour stat(2), a colour ls on the autofs mount
point will then cause every mount within that directory to be mounted.
This is fine for small maps but, as you can imagine, maps with around a
100 or more entries start to become a problem and maps larger than this
are very common.
The specific case you mention, the hosts map, is essentially a multiple
mount map entry. Due to these potentially having a large number of
mounts we needed to make them mount and expire "on demand" rather than
mount and expire them all at once. This is done by mounting autofs mount
point triggers for each of the multiple mount locations and these have
the same semantics as maps that use the "browse" option so the issue is
present with them also. Note that mounting and umounting these
multi-mount entries as a single unit was seen to be a major problem with
autofs which is why it was changed.
The real problem is that we would like to be able to honour stat(2) in
some cases but not in others but we have no way of working out which is
which, at least that is my current belief. I haven't checked this for
some time now so maybe I should re-visit it.
Nevertheless, there will always be cases where we cannot honour stat(2)
or we cannot tell whether we should honour it.
Ian
prev parent reply other threads:[~2009-05-25 5:11 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-05-22 17:42 Should stat(2)ing an automount mount point trigger the automount? Phil Dumont
2009-05-25 5:11 ` Ian Kent [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4A1A288A.4030309@themaw.net \
--to=raven@themaw.net \
--cc=autofs@linux.kernel.org \
--cc=phil@solidstatescientific.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.