Re: any idea about auto export multiple btrfs snapshots?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

nfs need to treat btrfs subvols as different filesystems, so nfs need
crossmnt feature to support multiple btrfs subvol auto export?

It is yet not clear what prevent nfs/crossmnt from work well.

1, stat() and the result 'struct stat'
	btrfs subvol support it well.
	multiple subvols will have different st_dev of 'struct stat'.
	/bin/find works well too.

2, statfs() and the result 'struct statfs'
	btrfs subvol support it well.
	multiple subvols will have different f_fsid of 'struct statfs'.

3, stx_mnt_id of statx
	btrfs subvol does NOT support it well.
	but stx_mnt_id seems yet not used.

4, d_mountpoint() in kernel
	d_mountpoint() seems not support btrfs subvol.
	but we can add some dirty fix such as.

+//#define BTRFS_FIRST_FREE_OBJECTID 256ULL
+//#define BTRFS_SUPER_MAGIC    0x9123683E
+static inline bool is_btrfs_subvol_d(const struct dentry *dentry)
+{
+    return dentry->d_inode && dentry->d_inode->i_ino == 256ULL &&
+       dentry->d_sb && dentry->d_sb->s_magic == 0x9123683E;
+}

so the problem list is yet not clear.

Best Regards
Wang Yugui (wangyugui@xxxxxxxxxxxx)
2021/06/17

> On Sun, 13 Jun 2021, Wang Yugui wrote:
> > Hi,
> > 
> > Any idea about auto export multiple btrfs snapshots?
> > 
> > One related patch is yet not merged to nfs-utils 2.5.3.
> > From:   "NeilBrown" <neilb@xxxxxxx>
> > Subject: [PATCH/RFC v2 nfs-utils] Fix NFSv4 export of tmpfs filesystems.
> > 
> > In this patch, an UUID is auto generated when a tmpfs have no UUID.
> > 
> > for btrfs, multiple subvolume snapshot have the same filesystem UUID.
> > Could we generate an UUID for btrfs subvol with 'filesystem UUID' + 'subvol ID'?
> 
> You really need to ask this question of btrfs developers.  'mountd'
> already has a special-case exception for btrfs, to prefer the uuid
> provided by statfs64() rather than the uuid extracted from the block
> device.  It would be quite easy to add another exception.
> But it would only be reasonable to do that if the btrfs team told us how
> that wanted us to generate a UUID for a given mount point, and promised
> that would always provide a unique stable result.
> 
> This is completely separate from the tmpfs patch you identified.
> 
> NeilBrown
> 
> 
> > 
> > Best Regards
> > Wang Yugui (wangyugui@xxxxxxxxxxxx)
> > 2021/06/13
> > 
> > 
> > 





[Index of Archives]     [Linux Filesystem Development]     [Linux USB Development]     [Linux Media Development]     [Video for Linux]     [Linux NILFS]     [Linux Audio Users]     [Yosemite Info]     [Linux SCSI]

  Powered by Linux