• Anand Jain's avatar
    btrfs: support cloned-device mount capability · a5b8a5f9
    Anand Jain authored
    Guilherme's previous work [1] aimed at the mounting of cloned devices
    using a superblock flag SINGLE_DEV during mkfs.
     [1] https://lore.kernel.org/linux-btrfs/20230831001544.3379273-1-gpiccoli@igalia.com/
    
    Building upon this work, here is in memory only approach. As it mounts
    we determine if the same fsid is already mounted if then we generate a
    random temp fsid which shall be used the mount, in memory only not
    written to the disk. We distinguish devices by devt.
    
    Example:
      $ fallocate -l 300m ./disk1.img
      $ mkfs.btrfs -f ./disk1.img
      $ cp ./disk1.img ./disk2.img
      $ cp ./disk1.img ./disk3.img
      $ mount -o loop ./disk1.img /btrfs
      $ mount -o ./disk2.img /btrfs1
      $ mount -o ./disk3.img /btrfs2
    
      $ btrfs fi show -m
      Label: none  uuid: 4a212b48-1bec-46a5-938a-783c8c1f0b02
    	Total devices 1 FS bytes used 144.00KiB
    	devid    1 size 300.00MiB used 88.00MiB path /dev/loop0
    
      Label: none  uuid: adabf2fe-5515-4ad0-95b4-7b1609218c16
    	Total devices 1 FS bytes used 144.00KiB
    	devid    1 size 300.00MiB used 88.00MiB path /dev/loop1
    
      Label: none  uuid: 1d77d0df-7d92-439e-adbd-20b9b86fdedb
    	Total devices 1 FS bytes used 144.00KiB
    	devid    1 size 300.00MiB used 88.00MiB path /dev/loop2
    Co-developed-by: default avatarGuilherme G. Piccoli <gpiccoli@igalia.com>
    Signed-off-by: default avatarAnand Jain <anand.jain@oracle.com>
    Signed-off-by: default avatarDavid Sterba <dsterba@suse.com>
    a5b8a5f9
volumes.h 23 KB