----- Ursprüngliche Mail ----- >> Well, the goal of my mail was not sending a ready-to-apply patch. >> It was a question. To me next_mnt() looks wrong but I'm not sure whether >> the current handling of "/" is desired for some special case I'm not aware of. >> >> I'll happily send a patch after we agree that next_mnt() is wrong. > I'm still trying to reproduce problem... I have > > /etc/nfs.conf: rootdir=/export > > /etc/exports: > /home *(rw,sec=sys:krb5:krb5i:krb5p) > /tmp *(rw,fsid=666,all_squash) > / *(rw,fsid=root,all_squash) > > I'm not seeing the problem... Where does the crossmount come in? Chris reported the problem to me while he was testing my re-export/crossmount patches. I can try reproducing without re-exporting later. In theory you should see the problem as follows: 1. Have rootdir=/export in your nfs.conf 2. /export is some filesystem that contains more mounts 3. /export/fs1 is a different filesytem 4. /export/fs2 is a different filesytem too 5. /etc/exports contains: / *(rw,fsid=root,all_squash,crossmount) Client mounts / to /nfs and then tries to access /nfs/fs1. Then nfsd_fh() iterates over all exports, finds one with NFSEXP_CROSSMOUNT set. Using next_mnt() it finds possible sub-mounts. But for the "/" case next_mnt() returns none -> nfsd_fh() fails -> client cannot enter /nfs/fs1. Thanks, //richard