• Qu Wenruo's avatar
    btrfs: ioctl: return device fsid from DEV_INFO ioctl · 2943868a
    Qu Wenruo authored
    Currently user space utilizes dev info ioctl to grab the info of a
    certain devid, this includes its device uuid.  But the returned info is
    not enough to determine if a device is a seed.
    
    Commit a26d60de ("btrfs: sysfs: add devinfo/fsid to retrieve actual
    fsid from the device") exports the same value in sysfs so this is for
    parity with ioctl.  Add a new member, fsid, into
    btrfs_ioctl_dev_info_args, and populate the member with fsid value.
    
    This should not cause any compatibility problem, following the
    combinations:
    
    - Old user space, old kernel
    - Old user space, new kernel
      User space tool won't even check the new member.
    
    - New user space, old kernel
      The kernel won't touch the new member, and user space tool should
      zero out its argument, thus the new member is all zero.
    
      User space tool can then know the kernel doesn't support this fsid
      reporting, and falls back to whatever they can.
    
    - New user space, new kernel
      Go as planned.
    
      Would find the fsid member is no longer zero, and trust its value.
    Reviewed-by: default avatarAnand Jain <anand.jain@oracle.com>
    Signed-off-by: default avatarQu Wenruo <wqu@suse.com>
    Signed-off-by: default avatarDavid Sterba <dsterba@suse.com>
    2943868a
ioctl.c 115 KB