Re: 2.6.18-rc4-mm1

David Howells
2006-08-16T10:00:55Z

Hi Ian,

I think this is probably a problem with the automounter daemon.

What I think happens is this:

(1) I've got an NFS server (trash) with the following configuration:

[root@trash dhowells]# cat /etc/exports
/ *(rw,async)
/usr/src *(rw,async)
/mnt/export *(rw,async)

(2) I do "ls -l" on the client to use the automounter to view the root NFS
share on the machine.

(3) The automounter makes /net/trash and mounts trash:/ on it.

(4) The automount daemon asks the server what other shares it has available.

(5) For each share, the automounter attempts to create the directories on
which to mount it:

SHARE DIRECTORIES TO BE CREATED
======================= =============================================
trash:/usr/src /net/trash/usr, /net/trash/usr/src
trash:/mnt/exports /net/trash/mnt, /net/trash/mnt/exports

(6) The automount daemon issued mkdir() syscalls to create these directories,
_despite_ the fact that it is doing so in a mounted filesystem.

(7) SELinux prohibits the mkdir() syscall by refusing write permission on the
directory.

(8) An unconstructed dentry is left, which causes the "?---------" lines to
appear in the ls -l listing.

With the new internal automounting code in NFS, the automounter shouldn't
attempt to do step (4) onwards for submounts as the NFS filesystem itself will
take care of that.

And, in my opinion, it shouldn't be attempting to create directories on the
server.

However, (8) might well represent a bug in NFS.

David