Skip to content

Commit a013d14

Browse files
asjkdave
authored andcommitted
btrfs: sysfs, add UUID/devinfo kobject
Create directory /sys/fs/btrfs/UUID/devinfo to hold devices directories by the id (unlike /devices). Signed-off-by: Anand Jain <[email protected]> Reviewed-by: David Sterba <[email protected]> Signed-off-by: David Sterba <[email protected]>
1 parent 28553fa commit a013d14

File tree

2 files changed

+16
-0
lines changed

2 files changed

+16
-0
lines changed

fs/btrfs/sysfs.c

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -901,6 +901,12 @@ static int addrm_unknown_feature_attrs(struct btrfs_fs_info *fs_info, bool add)
901901

902902
static void __btrfs_sysfs_remove_fsid(struct btrfs_fs_devices *fs_devs)
903903
{
904+
if (fs_devs->devinfo_kobj) {
905+
kobject_del(fs_devs->devinfo_kobj);
906+
kobject_put(fs_devs->devinfo_kobj);
907+
fs_devs->devinfo_kobj = NULL;
908+
}
909+
904910
if (fs_devs->devices_kobj) {
905911
kobject_del(fs_devs->devices_kobj);
906912
kobject_put(fs_devs->devices_kobj);
@@ -1369,6 +1375,15 @@ int btrfs_sysfs_add_fsid(struct btrfs_fs_devices *fs_devs)
13691375
return -ENOMEM;
13701376
}
13711377

1378+
fs_devs->devinfo_kobj = kobject_create_and_add("devinfo",
1379+
&fs_devs->fsid_kobj);
1380+
if (!fs_devs->devinfo_kobj) {
1381+
btrfs_err(fs_devs->fs_info,
1382+
"failed to init sysfs devinfo kobject");
1383+
btrfs_sysfs_remove_fsid(fs_devs);
1384+
return -ENOMEM;
1385+
}
1386+
13721387
return 0;
13731388
}
13741389

fs/btrfs/volumes.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -258,6 +258,7 @@ struct btrfs_fs_devices {
258258
/* sysfs kobjects */
259259
struct kobject fsid_kobj;
260260
struct kobject *devices_kobj;
261+
struct kobject *devinfo_kobj;
261262
struct completion kobj_unregister;
262263
};
263264

0 commit comments

Comments
 (0)