OSDN Git Service

btrfs: sysfs: export filesystem generation
authorAnand Jain <anand.jain@oracle.com>
Wed, 7 Oct 2020 07:20:03 +0000 (15:20 +0800)
committerDavid Sterba <dsterba@suse.com>
Mon, 7 Dec 2020 15:23:59 +0000 (16:23 +0100)
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>
fs/btrfs/sysfs.c

index 279d926..8424f5d 100644 (file)
@@ -854,6 +854,15 @@ static ssize_t btrfs_exclusive_operation_show(struct kobject *kobj,
 }
 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[] = {
        BTRFS_ATTR_PTR(, label),
        BTRFS_ATTR_PTR(, nodesize),
@@ -863,6 +872,7 @@ static const struct attribute *btrfs_attrs[] = {
        BTRFS_ATTR_PTR(, metadata_uuid),
        BTRFS_ATTR_PTR(, checksum),
        BTRFS_ATTR_PTR(, exclusive_operation),
+       BTRFS_ATTR_PTR(, generation),
        NULL,
 };