mirror of
git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-08-05 16:54:27 +00:00
btrfs: sysfs: expose quota mode via sysfs
Add a new sysfs file /sys/fs/btrfs/<uuid>/qgroups/mode which prints out the mode qgroups is running in. The possible modes are qgroup, and squota. If quotas are not enabled, then the qgroups directory will not exist, so don't handle that mode. Signed-off-by: Boris Burkov <boris@bur.io> Signed-off-by: David Sterba <dsterba@suse.com>
This commit is contained in:
parent
182940f4f4
commit
0182764a21
1 changed files with 28 additions and 0 deletions
|
@ -2089,6 +2089,33 @@ static ssize_t qgroup_enabled_show(struct kobject *qgroups_kobj,
|
|||
}
|
||||
BTRFS_ATTR(qgroups, enabled, qgroup_enabled_show);
|
||||
|
||||
static ssize_t qgroup_mode_show(struct kobject *qgroups_kobj,
|
||||
struct kobj_attribute *a,
|
||||
char *buf)
|
||||
{
|
||||
struct btrfs_fs_info *fs_info = to_fs_info(qgroups_kobj->parent);
|
||||
ssize_t ret = 0;
|
||||
|
||||
spin_lock(&fs_info->qgroup_lock);
|
||||
ASSERT(btrfs_qgroup_enabled(fs_info));
|
||||
switch (btrfs_qgroup_mode(fs_info)) {
|
||||
case BTRFS_QGROUP_MODE_FULL:
|
||||
ret = sysfs_emit(buf, "qgroup\n");
|
||||
break;
|
||||
case BTRFS_QGROUP_MODE_SIMPLE:
|
||||
ret = sysfs_emit(buf, "squota\n");
|
||||
break;
|
||||
default:
|
||||
btrfs_warn(fs_info, "unexpected qgroup mode %d\n",
|
||||
btrfs_qgroup_mode(fs_info));
|
||||
break;
|
||||
}
|
||||
spin_unlock(&fs_info->qgroup_lock);
|
||||
|
||||
return ret;
|
||||
}
|
||||
BTRFS_ATTR(qgroups, mode, qgroup_mode_show);
|
||||
|
||||
static ssize_t qgroup_inconsistent_show(struct kobject *qgroups_kobj,
|
||||
struct kobj_attribute *a,
|
||||
char *buf)
|
||||
|
@ -2151,6 +2178,7 @@ static struct attribute *qgroups_attrs[] = {
|
|||
BTRFS_ATTR_PTR(qgroups, enabled),
|
||||
BTRFS_ATTR_PTR(qgroups, inconsistent),
|
||||
BTRFS_ATTR_PTR(qgroups, drop_subtree_threshold),
|
||||
BTRFS_ATTR_PTR(qgroups, mode),
|
||||
NULL
|
||||
};
|
||||
ATTRIBUTE_GROUPS(qgroups);
|
||||
|
|
Loading…
Add table
Reference in a new issue