> > It seems more fixes are needed. > > I think the problem is that the submount doesn't appear in /proc/mounts. > "nfsd_fh()" in nfs-utils needs to be able to map from the uuid for a > filesystem to the mount point. To do this it walks through /proc/mounts > checking the uuid of each filesystem. If a filesystem isn't listed > there, it obviously fails. > > I guess you could add code to nfs-utils to do whatever "btrfs subvol > list" does to make up for the fact that btrfs doesn't register in > /proc/mounts. Another approach might be to just change svcxdr_encode_fattr3() and nfsd4_encode_fattr() in the 'FSIDSOJURCE_UUID' case to check if dentry->d_inode has a different btrfs volume id to exp->ex_path.dentry->d_inode. If it does, then mix the volume id into the fsid somehow. With that, you wouldn't want the first change I suggested. NeilBrown