On 6/21/21 3:41 PM, Wang Yugui wrote:
Hi,
OK thanks for the information. I think they will just work in nfs-ganesha as
long as the snapshots or subvols are mounted within an nfs-ganesha export or
are exported explicitly. nfs-ganesha has the equivalent of knfsd's
nohide/crossmnt options and when nfs-ganesha detects crossing a filesystem
boundary will lookup the filesystem via getmntend and listing btrfs subvols
and then expose that filesystem (via the fsid attribute) to the clients
where at least the Linux nfs client will detect a filesystem boundary and
create a new mount entry for it.
Not only exported explicitly, but also kept in the same hierarchy.
If we export
/mnt/test #the btrfs
/mnt/test/sub1 # the btrfs subvol 1
/mnt/test/sub2 # the btrfs subvol 2
we need to make sure we will not access '/mnt/test/sub1' through '/mnt/test'
from nfs client.
current safe export:
#/mnt/test #the btrfs, not exported
/mnt/test/sub1 # the btrfs subvol 1
/mnt/test/sub2 # the btrfs subvol 2
What's the problem with exporting /mnt/test AND then exporting sub1 and
sub2 as crossmnt exports? As far as I can tell, that seems to work just
fine with nfs-ganesha.
Frank