From: Ian Kent <raven@themaw.net>
To: Leonardo Chiquitto <leonardo.lists@gmail.com>
Cc: autofs@linux.kernel.org
Subject: Re: AutoFS creates unmountable directories when ghosting is enabled
Date: Wed, 15 Dec 2010 10:49:04 +0800 [thread overview]
Message-ID: <1292381344.2979.6.camel@perseus> (raw)
In-Reply-To: <20101210191042.GA4396@libre.l.ngdn.org>
On Fri, 2010-12-10 at 17:10 -0200, Leonardo Chiquitto wrote:
> Hello Ian and list,
>
> I'd like to forward a bug report we received on openSUSE's Bugzilla [1].
> Please consider the following setup to reproduce the problem:
>
> host:~ # grep automount /etc/nsswitch.conf
> automount: files
>
> host:~ # cat /etc/auto.master
> /vol /etc/auto.vol
>
> host:~ # cat /etc/auto.vol
> data1 -fstype=nfs,ro,rsize=8192,wsize=8192,intr,nolock,nosuid srv:/data1
> data2 -fstype=nfs,ro,rsize=8192,wsize=8192,intr,nolock,nosuid srv:/data2
> data3 -fstype=nfs,ro,rsize=8192,wsize=8192,intr,nolock,nosuid srv:/data3
>
> host:~ # cat /etc/sysconfig/autofs
> AUTOFS_OPTIONS=""
> LOCAL_OPTIONS=""
> APPEND_OPTIONS="yes"
> DEFAULT_MASTER_MAP_NAME="auto.master"
> DEFAULT_TIMEOUT=600
> DEFAULT_BROWSE_MODE="yes"
> DEFAULT_LOGGING="debug"
> USE_MISC_DEVICE="yes"
>
> host:~ # ls -F /vol
> data1/ data2/ data3/
>
> The problem depends on ghosting being enabled (ie, BROWSE_MODE=yes).
> When we try to access a non-existent key/entry, AutoFS will fail to mount
> it but will still create the mount point:
>
> host:~ # ls -d /vol/invalid; sleep 10; ls -d /vol/invalid
> ls: cannot access /vol/invalid: No such file or directory
> /vol/invalid
>
> host:~ # ls -F /vol
> data1/ data2/ data3/ invalid/
>
> The problem happens because lookup_ghost() iterates over all cached
> mapents and creates directories for each entry in the cache. Since
> the cache also stores entries for failed mounts (negative entries), it
> ends up creating directories for mount points that don't exist in the
> map.
Yes, an obvious problem.
>
> I tested the patch below and it resolves the problem for me, but I'm not
> sure if this is the best (or even the correct) way to fix the bug. I'd
> appreciate if you could review and comment.
Yeah, at first I thought there were a few other cases.
There still might be so let me think about it further.
>
> Thanks,
> Leonardo
>
> [1] https://bugzilla.novell.com/show_bug.cgi?id=658734
>
> When ghosting is enabled, don't create mount points for cached entries
> that don't have a valid mapent.
>
> Index: autofs-5.0.5/daemon/lookup.c
> ===================================================================
> --- autofs-5.0.5.orig/daemon/lookup.c
> +++ autofs-5.0.5/daemon/lookup.c
> @@ -604,6 +604,9 @@ int lookup_ghost(struct autofs_point *ap
> if (!strcmp(me->key, "*"))
> goto next;
>
> + if (!me->mapent)
> + goto next;
> +
> if (*me->key == '/') {
> /* It's a busy multi-mount - leave till next time */
> if (list_empty(&me->multi_list))
>
> _______________________________________________
> autofs mailing list
> autofs@linux.kernel.org
> http://linux.kernel.org/mailman/listinfo/autofs
next prev parent reply other threads:[~2010-12-15 2:49 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-12-10 19:10 AutoFS creates unmountable directories when ghosting is enabled Leonardo Chiquitto
2010-12-15 2:49 ` Ian Kent [this message]
2011-03-07 2:37 ` Leonardo Chiquitto
2011-03-09 4:15 ` Ian Kent
2011-03-09 4:21 ` Ian Kent
2011-03-09 14:09 ` Leonardo Chiquitto
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=1292381344.2979.6.camel@perseus \
--to=raven@themaw.net \
--cc=autofs@linux.kernel.org \
--cc=leonardo.lists@gmail.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.