Danny Braniss wrote:
Danny Braniss wrote:
there is an undocumented option:
        boot-nfsroot-options
that the diskeless boot can use. I tried boot-nfsroot-options = "nfsv3"
since the pxeboot does the initial mount via nfsv2, and this has at least
one problem: removing a file from the readonly / will hang the system.

so, the remount to v3 works in the case that the root is served by a Freebsd
nfs server, but fails if it's NetAPP. The reason is that the v2 filehandle
is 32 bytes, and when switching to V3 it becomes 28bytes - sizeof(fhandle_t).
This is not liked by the NetApp, which correctly gives error 1001: BADHANDLE :-)

While I'm trying to come up with a solution, I am wondering if someone
can shed some light:
 - is sizeof(fhandle_t) == 28 bytes is mystical, or changing it to
   32 bytes will start WW3?

NFSv3 file handles (by spec) can be up to 64bytes.

true, but in freebsd, look at sys/nfs/nfsproto.h
#define NFSX_V2FH       32
#define NFSX_V3FH               (sizeof (fhandle_t))
#define NFSX_V4FH               128

so for v3 it's 28 bytes. (fhandle_t is defined in sys/mount.h)


I'm not 100% sure what is happening, but it sounds like the file handle for the mount point or maybe one of the directories is not getting reset on remount.

When do you get the BADHANDLE error? Can you capture a tshark/wireshark/tcpdump of the remount and error?

I did, and if you look in sys/nfsclient/nfs_vfsops.c, nfs_convert_diskless is 
responsible
for chopping off the 4 extra bytes. BTW, I tried to change the bcopy count to 
NFSX_V2FH/32, and
it panics the kernel :-(

danny


oh - looks like this says it all:
http://fxr.googlebit.com/source/sys/nfsclient/nfsdiskless.h?v=8-CURRENT#L51

Snippet:
 51 /*
52 * I have defined a new structure that can handle an NFS Version 3 file handle 53 * but the kernel still expects the old Version 2 one to be provided. The 54 * changes required in nfs_vfsops.c for using the new are documented there in 55 * comments. (I felt that breaking network booting code by changing this 56 * structure would not be prudent at this time, since almost all servers are
 57  * still Version 2 anyhow.)
 58  */


Eric




_______________________________________________
freebsd-hackers@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to "[EMAIL PROTECTED]"

Reply via email to