btrfs: sysfs: export filesystem generation

Matching with the information that's available from the ioctl
FS_INFO, add generation to the per-filesystem directory
/sys/fs/btrfs/UUID/generation, which could be used by scripts.

Signed-off-by: Anand Jain <anand.jain@oracle.com>
Reviewed-by: David Sterba <dsterba@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
This commit is contained in:
Anand Jain 2020-10-07 15:20:03 +08:00 коммит произвёл David Sterba
Родитель 0477e92881
Коммит 089c8b0551
1 изменённых файлов: 10 добавлений и 0 удалений

Просмотреть файл

@ -854,6 +854,15 @@ static ssize_t btrfs_exclusive_operation_show(struct kobject *kobj,
} }
BTRFS_ATTR(, exclusive_operation, btrfs_exclusive_operation_show); BTRFS_ATTR(, exclusive_operation, btrfs_exclusive_operation_show);
static ssize_t btrfs_generation_show(struct kobject *kobj,
struct kobj_attribute *a, char *buf)
{
struct btrfs_fs_info *fs_info = to_fs_info(kobj);
return scnprintf(buf, PAGE_SIZE, "%llu\n", fs_info->generation);
}
BTRFS_ATTR(, generation, btrfs_generation_show);
static const struct attribute *btrfs_attrs[] = { static const struct attribute *btrfs_attrs[] = {
BTRFS_ATTR_PTR(, label), BTRFS_ATTR_PTR(, label),
BTRFS_ATTR_PTR(, nodesize), BTRFS_ATTR_PTR(, nodesize),
@ -863,6 +872,7 @@ static const struct attribute *btrfs_attrs[] = {
BTRFS_ATTR_PTR(, metadata_uuid), BTRFS_ATTR_PTR(, metadata_uuid),
BTRFS_ATTR_PTR(, checksum), BTRFS_ATTR_PTR(, checksum),
BTRFS_ATTR_PTR(, exclusive_operation), BTRFS_ATTR_PTR(, exclusive_operation),
BTRFS_ATTR_PTR(, generation),
NULL, NULL,
}; };