• Qu Wenruo's avatar
    btrfs: qgroup: export qgroups in sysfs · 49e5fb46
    Qu Wenruo authored
    This patch will add the following sysfs interface:
    
      /sys/fs/btrfs/<UUID>/qgroups/<qgroup_id>/referenced
      /sys/fs/btrfs/<UUID>/qgroups/<qgroup_id>/exclusive
      /sys/fs/btrfs/<UUID>/qgroups/<qgroup_id>/max_referenced
      /sys/fs/btrfs/<UUID>/qgroups/<qgroup_id>/max_exclusive
      /sys/fs/btrfs/<UUID>/qgroups/<qgroup_id>/limit_flags
    
    Which is also available in output of "btrfs qgroup show".
    
      /sys/fs/btrfs/<UUID>/qgroups/<qgroup_id>/rsv_data
      /sys/fs/btrfs/<UUID>/qgroups/<qgroup_id>/rsv_meta_pertrans
      /sys/fs/btrfs/<UUID>/qgroups/<qgroup_id>/rsv_meta_prealloc
    
    The last 3 rsv related members are not visible to users, but can be very
    useful to debug qgroup limit related bugs.
    
    Also, to avoid '/' used in <qgroup_id>, the separator between qgroup
    level and qgroup id is changed to '_'.
    
    The interface is not hidden behind 'debug' as we want this interface to
    be included into production build and to provide another way to read the
    qgroup information besides the ioctls.
    Signed-off-by: default avatarQu Wenruo <wqu@suse.com>
    Reviewed-by: default avatarDavid Sterba <dsterba@suse.com>
    Signed-off-by: default avatarDavid Sterba <dsterba@suse.com>
    49e5fb46
qgroup.h 14 KB