Re: 2.6.24-rc3-git4 NFS crossmnt regression

Neil Brown
2007-12-10T05:03:27Z

On Sunday December 9, maximlevitsky@gmail.com wrote:
> On Saturday 08 December 2007 01:43:28 Rafael J. Wysocki wrote:
> > On Saturday, 8 of December 2007, Andrew Morton wrote:
> > > On Fri, 07 Dec 2007 17:51:58 -0500
> > > Trond Myklebust <trond.myklebust@fys.uio.no> wrote:
> > >
> > > >
> > > > On Fri, 2007-12-07 at 14:39 -0500, Shane wrote:
> > > > > On Dec 7, 2007 2:16 PM, Shane <gnome42@gmail.com> wrote:
> > > > > ...
> > > > > > Confirmed working in rc4-git5. I'll deploy this kernel in a few more
> > > > > > spots and check for other regressions.
> > > > >
> > > > > Hmm, I installed a new kernel built from the same sources on the NFS
> > > > > server. And now I don't see anything at all in the crossmnt dirs.
> > > > >
> > > > > ls /dirA/dirB/dirC --> zero output (empty dir)
> > > > >
> > > > > Are there any other pending fixes?
>
> Hi,
> Due to the fact that I was bitten by this bug (I thought it is a feature), and a bit of lack
> of understanding of NFS4 I want to ask few questions about NFS:
>
> 1) I want to export whole file-system with submounts to a range of clients.
> As 'exports' manual says I can't do so, is that true?

You should be able to do this successfully with nfs-utils 1.1 or
later. Where does the manual say you cannot - we should fix that.

>
> Can you tell me how properly to use crossmnt and nohide?

It is best not to use nohide - we should probably mark it as
'legacy'.

Simply export the top level mountpoint as 'crossmnt' and everything
below there will be exported.

> Where should I put those options in root file-system export or in submount export?

crossmnt goes at the top. nohide goes in the submount. Both have
the same general effect though with subtle differences.
You don't need both (though that doesn't hurt).
Just use crossmnt at the top, Then you don't need to mention the
lower level filesystems at all.

>
> 2) NFS4 - I can't get it working:
>
> *I have a LFS system, and this is what I did (NFS3 works fine, but crossmnt, and nohide seems not to work, probably due to above bug)
> I also have seen errors about stale handles
> *Kernel - 2.6.24-rc3 with NFS3/4 client/server enabled on both host and guest. (both client and server running this kernel)
> *rpc.idmapd running on both client and server + all standard NFS3 tools
> *NFS tools 1.1.1 with nfs4 support compiled + without GSS (on server)
> * /etc/exports with fsid=0: (on server)
> /tmp *(fsid=0,insecure,rw,async,anonuid=100,anongid=1000)
> * mounting with -tnfs4 server:/ /mnt/tmp
>
> Still doesn't work, using wireshark shows that
> NFSV4 COMPOUND call with
> Opcode: PUTROOTFH (24)
> Opcode: GETFH (10)
> Opcode: GETATTR (9)
>
> Fails with
> Reject State: AUTH_ERROR (1)
> Auth State: bad credential (seal broken) (1)
>
>
> Any ideas?
>
> (I decided to switch to NFS4 only due to the lack of ability to see underlying mounts)
>

All of this should work fine with v3. Once you have the right patch
for the crossmnt bug applied, if you have further problems post them
to linux-nfs@vger.kernel.org.

NeilBrown