mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: David Howells <dhowells@redhat.com>
To: Ian Kent <raven@themaw.net>
Cc: David Howells <dhowells@redhat.com>,
	Andrew Morton <akpm@osdl.org>,
	Trond Myklebust <trond.myklebust@fys.uio.no>,
	linux-kernel@vger.kernel.org, aviro@redhat.com
Subject: Re: [PATCH] NFS: Replace null dentries that appear in readdir's list [try #2]
Date: Mon, 21 Aug 2006 16:17:52 +0100	[thread overview]
Message-ID: <15387.1156173472@warthog.cambridge.redhat.com> (raw)
In-Reply-To: <Pine.LNX.4.64.0608212112350.28902@raven.themaw.net>

Ian Kent <raven@themaw.net> wrote:

> > But does it _matter_ that the thing is mounted or dismounted as a unit?  And
> > if so, why?
> 
> Yes with autofs version 4, because of the nesting of mounts which also 
> introduces issues with expiration.

The NFS client's automounting facilities handle automatic expiration and
implicit recursive unmounting of xdev submounts.

For example, on my test machine:

	[root@andromeda ~]# /root/mount warthog:/ /warthog -o fsc
	[root@andromeda ~]# ls /warthog/warthog
	[root@andromeda ~]# cat /proc/mounts 
	...
	warthog:/ /warthog nfs rw,vers=3,rsize=32768,wsize=32768,hard,fsc,proto=tcp,timeo=600,retrans=2,sec=sys,addr=warthog 0 0
	warthog:/warthog /warthog/warthog nfs rw,vers=3,rsize=32768,wsize=32768,hard,fsc,proto=tcp,timeo=600,retrans=2,sec=sys,addr=warthog 0 0
	[root@andromeda ~]# umount /warthog/
	[root@andromeda ~]# 

The "ls" command caused the client to mount warthog:/warthog off of the server
onto /warthog/warthog automatically.  I was then able to just unmount
/warthog, which took away /warthog/warthog also without me having to do
anything special.

> In version 5 they are mounted and umounted on demand.

This should now be left to the NFS client.

The NFS client now views each set of files with the same FSID as a separate
collection of files, and accords each set its own superblock.  The superblocks
thus created are automounted by the follow_link() op on the directory that's
at the point of FSID-change.

Note!  This works for NFS2, NFS3 and NFS4.  NFS4 has an extra facility by
which mounts can cross servers, but that uses more or less the same mechanism.

> > > In v4 that are mounted and umounted as a unit to deal with the nesting.
> > 
> > Why does the automounter daemon have to do the mounting of submounts?
> > What's wrong with having the kernel do it?  The one problem with having
> > the kernel do it that I can see, is that the kernel doesn't update
> > /etc/mtab.
> 
> v2 and v3 won't do the expire, will they?

Yes.  Automounting and auto-expiration both.

> Not updating the mtab will be a problem for me also and possibly for 
> users that expect to see mounts in it.

ln -sf /proc/mounts /etc/mtab

> The "/net" functionality is a standard, expected automounter function.

Whilst that may be true, it doesn't prohibit working with the NFS clients
automounting capabilities.

> > Note that rather than manually mounting the submounts, you could just open
> > and close those directories as that should cause them to automount -
> > though the xdev mountpoints will expire and become automatically unmounted
> > after a certain period.
> 
> The xdev (assume you mean NFSv4 submounts) mounts will be the area I need 
> to work on, for sure.

I mean NFSv2, NFSv3 and NFSv4 submounts that cross FSID, but remain on the
same server.

> I don't quite understand the "open will cause the automount" for NFS 
> version < 4.

Opening the directory will cause its follow_link() op to be invoked, which
will cause an automount if one hasn't already happened.  Obviously, if the
automount has taken place, the lower directory won't be seen for the follow to
take place.

> The automounter calls mount(8) when it gets a packet from the 
> autofs[4] kernel module due to an access.

The automounter must mount the root of any tree, yes; but xdev subtrees should
now be left to the NFS client to mount, which can be triggered by stat'ing the
mountpoint - admittedly, if you can reach it without a security error.

If you do get a security error, and attempt to build the directories anyway,
you run the risk of constructing a false image of the remote share as you
can't tell symlinks from directories, and run the risk of creating invalid
dentries locally because you can't determine the attributes of the remote
object.

> I expect that I won't have to do much at all for xdev mounts except to be 
> able to recoginize them and their owners so I can leave them alone. The 
> expire function might be a bit interesting.

They're self-expiring.  And, as I mentioned above, you only need to unmount
the root to dispose of the entire tree.

David

  parent reply	other threads:[~2006-08-21 15:18 UTC|newest]

Thread overview: 186+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-08-13  8:24 2.6.18-rc4-mm1 Andrew Morton
2006-08-13 11:45 ` 2.6.18-rc4-mm1 Maciej Rutecki
2006-08-13 19:11   ` 2.6.18-rc4-mm1 Andrew Morton
2006-08-13 22:44     ` 2.6.18-rc4-mm1 Ben Buxton
2006-08-13 22:58       ` 2.6.18-rc4-mm1 Michal Piotrowski
2006-08-13 23:25       ` 2.6.18-rc4-mm1 Dave Jones
2006-08-14 11:55         ` 2.6.18-rc4-mm1 Ben Buxton
2006-08-14 20:20           ` 2.6.18-rc4-mm1 Dave Jones
2006-08-14 21:13             ` 2.6.18-rc4-mm1 Ben B
2006-08-14 21:22               ` 2.6.18-rc4-mm1 Dave Jones
2006-08-14 21:46             ` 2.6.18-rc4-mm1 Andrew Morton
2006-08-14  0:00       ` 2.6.18-rc4-mm1 Dmitry Torokhov
2006-08-14 12:03         ` 2.6.18-rc4-mm1 Ben B
2006-08-14 13:45           ` 2.6.18-rc4-mm1 Dmitry Torokhov
2006-08-14 21:44             ` 2.6.18-rc4-mm1 Ben B
2006-08-15  2:23               ` 2.6.18-rc4-mm1 Dmitry Torokhov
2022-08-14  8:42     ` 2.6.18-rc4-mm1 Maciej Rutecki
2006-08-14  9:12       ` 2.6.18-rc4-mm1 Rafael J. Wysocki
2006-08-14 11:35         ` 2.6.18-rc4-mm1 Maciej Rutecki
2006-08-15  0:27       ` Linux Kernel Developer opening Eric Radman
2006-08-17 12:22       ` 2.6.18-rc4-mm1 Andreas Mohr
2006-08-18 10:30         ` 2.6.18-rc4-mm1 Andy Whitcroft
2006-08-13 23:58   ` 2.6.18-rc4-mm1 Dmitry Torokhov
     [not found]     ` <d120d5000608140643tddd9ce4o986560740ef5dbd7@mail.gmail.com>
2006-08-14 18:24       ` 2.6.18-rc4-mm1 Maciej Rutecki
2006-08-13 12:24 ` 2.6.18-rc4-mm1 Michal Piotrowski
2006-08-14  6:36   ` 2.6.18-rc4-mm1 Reuben Farrelly
2006-08-14  9:06     ` 2.6.18-rc4-mm1 Rafael J. Wysocki
2006-08-13 12:43 ` 2.6.18-rc4-mm1 Rafael J. Wysocki
2006-08-13 14:32 ` [patch] fix posix timer errors Frederik Deweerdt
2006-08-13 17:23   ` Andrew Morton
2006-08-13 15:30 ` [-mm patch] arch/i386/mm/ioremap.c must #include <asm/cacheflush.h> Adrian Bunk
2006-08-13 15:30 ` 2.6.18-rc4-mm1: drivers/video/sis/ compile error Adrian Bunk
2006-08-13 16:29   ` Michal Piotrowski
2006-08-13 16:40     ` Adrian Bunk
2006-08-13 17:20       ` Michal Piotrowski
2006-08-13 17:38 ` 2.6.18-rc4-mm1 Laurent Riffard
2006-08-13 20:39 ` 2.6.18-rc4-mm1 Andrew Morton
2006-08-14  8:06   ` 2.6.18-rc4-mm1 Ian Kent
2006-08-14  9:32   ` 2.6.18-rc4-mm1 David Howells
2006-08-14 17:16     ` 2.6.18-rc4-mm1 Andrew Morton
2006-08-14 18:12     ` 2.6.18-rc4-mm1 David Howells
2006-08-14 18:24       ` 2.6.18-rc4-mm1 Andrew Morton
2006-08-14 18:17     ` 2.6.18-rc4-mm1 David Howells
2006-08-14 22:49   ` 2.6.18-rc4-mm1 Trond Myklebust
2006-08-14 23:51     ` 2.6.18-rc4-mm1 Andrew Morton
2006-08-15 16:39   ` 2.6.18-rc4-mm1 David Howells
2006-08-15 16:55   ` 2.6.18-rc4-mm1 David Howells
2006-08-15 17:13     ` 2.6.18-rc4-mm1 Trond Myklebust
2006-08-15 17:22     ` 2.6.18-rc4-mm1 David Howells
2006-08-13 21:00 ` [-mm patch] make drivers/cpufreq/cpufreq_ondemand.c:powersave_bias_target() static Adrian Bunk
2006-08-13 21:00 ` [-mm patch] make drivers/hwmon/hdaps.c:transform_axes() static Adrian Bunk
2006-08-13 22:56   ` Shem Multinymous
2006-08-13 21:00 ` [-mm patch] drivers/media/dvb/frontends/: make 4 functions static Adrian Bunk
2006-08-13 21:00 ` [-mm patch] drivers/char/drm/: cleanups Adrian Bunk
2006-08-13 21:00 ` [-mm patch] kernel/time/ntp.c: possible cleanups Adrian Bunk
2006-08-13 21:01 ` [-mm patch] cleanup drivers/ata/Kconfig Adrian Bunk
2006-08-13 22:46   ` Alan Cox
2006-08-14 22:12     ` Adrian Bunk
2006-08-14 18:28   ` Jeff Garzik
2006-08-14 22:33     ` [libata " Adrian Bunk
2006-08-15  7:51   ` [-mm " Greg KH
2006-08-15  9:39     ` Adrian Bunk
2006-08-13 21:01 ` [-mm patch] net/decnet/: cleanups Adrian Bunk
2006-08-13 21:01 ` [-mm patch] net/ipv6/ip6_fib.c: make code static Adrian Bunk
2006-08-13 21:01 ` [-mm patch] Kconfig: move CRYPTO to the "Cryptographic options" menu Adrian Bunk
2006-08-13 22:40   ` Herbert Xu
2006-08-13 23:01 ` 2.6.18-rc4-mm1: ATI SB600 SATA drivers: modpost errors Adrian Bunk
2006-08-14  7:00 ` [patch -mm] s390: remove HIGHMEM dependencies Heiko Carstens
2006-08-14 14:13   ` Christoph Lameter
2006-08-14  7:58 ` 2.6.18-rc4-mm1 David Howells
2006-08-14 14:02 ` 2.6.18-rc4-mm1 Michal Piotrowski
2006-08-14 18:19   ` 2.6.18-rc4-mm1 Andrew Morton
2006-08-14 19:01     ` 2.6.18-rc4-mm1 Michal Piotrowski
2006-08-14 19:20       ` 2.6.18-rc4-mm1 john stultz
2006-08-14 19:27         ` 2.6.18-rc4-mm1 Michal Piotrowski
2006-08-14 19:44           ` 2.6.18-rc4-mm1 john stultz
2006-08-14 20:48             ` 2.6.18-rc4-mm1 Michal Piotrowski
2006-08-14 20:56               ` 2.6.18-rc4-mm1 Dave Jones
2006-08-14 21:13                 ` 2.6.18-rc4-mm1 Michal Piotrowski
2006-08-14 21:20                   ` 2.6.18-rc4-mm1 Dave Jones
2006-08-14 22:08                     ` 2.6.18-rc4-mm1 Michal Piotrowski
2006-08-14 14:38 ` 2.6.18-rc4-mm1: eth0: trigger_send() called with the transmitter busy Laurent Riffard
2006-08-14 16:50   ` Andrew Morton
2006-08-14 17:47     ` Laurent Riffard
2006-08-14 20:06       ` Laurent Riffard
2006-08-14 21:25         ` Rafael J. Wysocki
2006-08-14 23:01           ` Laurent Riffard
2006-08-15 10:10             ` Rafael J. Wysocki
2006-08-15 15:38               ` Laurent Riffard
2006-08-15 16:39                 ` Rafael J. Wysocki
2006-08-14 15:11 ` [-mm PATCH] ioremap: fixed MIPS build error Yoichi Yuasa
2006-08-14 17:54 ` 2.6.18-rc4-mm1 Rafael J. Wysocki
2006-08-14 18:15   ` 2.6.18-rc4-mm1 Andrew Morton
2006-08-15 14:07   ` 2.6.18-rc4-mm1 Atsushi Nemoto
2006-08-15 17:14     ` 2.6.18-rc4-mm1 Rafael J. Wysocki
2006-08-14 18:32 ` 2.6.18-rc4-mm1 David Howells
2006-08-14 21:31   ` 2.6.18-rc4-mm1 Andrew Morton
2006-08-15  9:51   ` 2.6.18-rc4-mm1 David Howells
2006-08-15 13:50     ` 2.6.18-rc4-mm1 Andrew Morton
2006-08-15 14:47     ` 2.6.18-rc4-mm1 David Howells
2006-08-15 16:15       ` 2.6.18-rc4-mm1 Andrew Morton
2006-08-15 17:29     ` 2.6.18-rc4-mm1 David Howells
2006-08-15 17:48       ` 2.6.18-rc4-mm1 Andrew Morton
2006-08-15 18:35       ` 2.6.18-rc4-mm1 David Howells
2006-08-15 18:49         ` 2.6.18-rc4-mm1 Andrew Morton
2006-08-15 19:20         ` 2.6.18-rc4-mm1 David Howells
2006-08-16  9:34         ` 2.6.18-rc4-mm1 David Howells
2006-08-16 12:36           ` 2.6.18-rc4-mm1 Ian Kent
2006-08-16 10:00         ` 2.6.18-rc4-mm1 David Howells
2006-08-16 12:23         ` 2.6.18-rc4-mm1 David Howells
2006-08-16 12:58           ` 2.6.18-rc4-mm1 Ian Kent
2006-08-16 13:20           ` 2.6.18-rc4-mm1 David Howells
2006-08-15 13:25 ` 2.6.18-rc4-mm1 BUG, drm related Frederik Deweerdt
2006-08-15 14:16   ` Andrew Morton
2006-08-15 17:37     ` Frederik Deweerdt
2006-08-15 16:21       ` Andrew Morton
2006-08-18 11:11         ` oops while loading snd-seq-oss (was: Re: 2.6.18-rc4-mm1 BUG, drm related) Frederik Deweerdt
2006-08-18 15:52           ` Andrew Morton
2006-08-18 15:58             ` Takashi Iwai
2006-08-18 18:44               ` Frederik Deweerdt
2006-08-18 19:43                 ` Frederik Deweerdt
2006-08-18 18:45             ` Frederik Deweerdt
2006-08-19 23:08   ` 2.6.18-rc4-mm1 BUG, drm relatedy Frederik Deweerdt
2006-08-21 11:24     ` Dave Airlie
2006-08-21 14:08       ` Frederik Deweerdt
2006-08-21 23:48         ` Dave Airlie
2006-08-16  9:41 ` 2.6.18-rc4-mm1 -- new depancy on curses development Andy Whitcroft
2006-08-16 10:35   ` Andy Whitcroft
2006-08-16 18:33   ` Sam Ravnborg
2006-08-16 19:26     ` Andy Whitcroft
2006-08-16 11:44 ` 2.6.18-rc4-mm1 BUG null pointer deref while saving a file Helge Hafting
2006-08-16 14:28   ` Dave Kleikamp
2006-08-18  8:24     ` Helge Hafting
2006-08-18 12:20       ` Dave Kleikamp
2006-08-16 15:15 ` [PATCH] NFS: Revalidate on readdir referring to null dentry David Howells
2006-08-16 15:49   ` Trond Myklebust
2006-08-16 16:15   ` [PATCH] NFS: Replace null dentries that appear in readdir's list David Howells
2006-08-16 16:35     ` Trond Myklebust
2006-08-17  5:12     ` Ian Kent
2006-08-17  7:42     ` Andrew Morton
2006-08-17 12:13     ` David Howells
2006-08-17 12:33     ` David Howells
2006-08-17 13:24     ` David Howells
2006-08-17 13:45     ` David Howells
2006-08-18  0:47     ` Ian Kent
2006-08-18  0:58     ` Ian Kent
2006-08-18  1:05       ` Ian Kent
2006-08-18  9:09     ` David Howells
2006-08-18  9:21     ` David Howells
2006-08-18  9:38   ` [PATCH] NFS: Replace null dentries that appear in readdir's list [try #2] David Howells
2006-08-19 16:48     ` Andrew Morton
2006-08-20 13:15     ` David Howells
2006-08-20 14:25       ` Ian Kent
2006-08-21  9:42       ` David Howells
2006-08-21 11:35         ` Ian Kent
2006-08-21 12:16         ` David Howells
2006-08-21 13:33           ` Ian Kent
2006-08-21 15:17           ` David Howells [this message]
2006-08-22  2:04             ` Ian Kent
2006-08-22  3:29             ` Ian Kent
2006-08-22  4:10               ` Trond Myklebust
2006-08-17 22:10 ` 2.6.18-rc4-mm1 Spurious ACK/NAK on isa0060/serio0, 2.6.18-rc2 is fine Helge Hafting
2006-08-17 22:34   ` Helge Hafting
2006-08-18 21:56     ` Greg KH
2006-08-19 11:00       ` Helge Hafting
2006-08-17 22:44 ` 2.6.18-rc4-mm1 - time moving at 3x speed! Helge Hafting
2006-08-17 23:15   ` john stultz
2006-08-18  8:18     ` Helge Hafting
2006-08-18  9:34     ` Andi Kleen
2006-08-18  9:30       ` Helge Hafting
2006-08-18 10:55         ` Andi Kleen
2006-08-18 10:01           ` Helge Hafting
2006-08-18 10:24             ` Rafael J. Wysocki
2006-08-18 11:21             ` Andi Kleen
2006-08-18 22:23             ` Randy.Dunlap
2006-08-19 10:50           ` 2.6.18-rc4-mm1 - time moving at 3x speed, bisect finished Helge Hafting
2006-08-20 17:06             ` Roman Zippel
2006-08-20 17:51               ` thunder7
2006-08-20 19:24                 ` Roman Zippel
2006-08-20 19:42                   ` thunder7
2006-08-20 21:47                     ` 2.6.18-rc4-mm1 - time moving at 3x speed, fix confirmed Helge Hafting
2006-08-19 23:16 ` [mm patch] drm, minor fixes Frederik Deweerdt
2006-08-20  9:37   ` Arjan van de Ven
2006-08-20 12:17     ` Frederik Deweerdt
2006-08-21 11:22       ` Dave Airlie
2006-08-20 14:48 ` [PATCH -mm] agp.h: constify struct agp_bridge_data::version Alexey Dobriyan

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=15387.1156173472@warthog.cambridge.redhat.com \
    --to=dhowells@redhat.com \
    --cc=akpm@osdl.org \
    --cc=aviro@redhat.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=raven@themaw.net \
    --cc=trond.myklebust@fys.uio.no \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

Powered by JetHome