Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 5a13f430 authored by Anand Jain's avatar Anand Jain Committed by David Sterba
Browse files

Btrfs: sysfs: add pointer to access fs_info from fs_devices



adds fs_info pointer with struct btrfs_fs_devices.

Signed-off-by: default avatarAnand Jain <anand.jain@oracle.com>
Signed-off-by: default avatarDavid Sterba <dsterba@suse.cz>
parent c73eccf7
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -530,6 +530,8 @@ static void btrfs_sysfs_remove_fsid(struct btrfs_fs_devices *fs_devs)

void btrfs_sysfs_remove_one(struct btrfs_fs_info *fs_info)
{
	btrfs_reset_fs_info_ptr(fs_info);

	if (fs_info->space_info_kobj) {
		sysfs_remove_files(fs_info->space_info_kobj, allocation_attrs);
		kobject_del(fs_info->space_info_kobj);
@@ -729,6 +731,8 @@ int btrfs_sysfs_add_one(struct btrfs_fs_info *fs_info)
	struct btrfs_fs_devices *fs_devs = fs_info->fs_devices;
	struct kobject *super_kobj = &fs_devs->super_kobj;

	btrfs_set_fs_info_ptr(fs_info);

	error = btrfs_sysfs_add_fsid(fs_devs, NULL);
	if (error)
		return error;
+18 −0
Original line number Diff line number Diff line
@@ -6733,3 +6733,21 @@ void btrfs_update_commit_device_bytes_used(struct btrfs_root *root,
	}
	unlock_chunks(root);
}

void btrfs_set_fs_info_ptr(struct btrfs_fs_info *fs_info)
{
	struct btrfs_fs_devices *fs_devices = fs_info->fs_devices;
	while (fs_devices) {
		fs_devices->fs_info = fs_info;
		fs_devices = fs_devices->seed;
	}
}

void btrfs_reset_fs_info_ptr(struct btrfs_fs_info *fs_info)
{
	struct btrfs_fs_devices *fs_devices = fs_info->fs_devices;
	while (fs_devices) {
		fs_devices->fs_info = NULL;
		fs_devices = fs_devices->seed;
	}
}
+3 −0
Original line number Diff line number Diff line
@@ -254,6 +254,7 @@ struct btrfs_fs_devices {
	 */
	int rotating;

	struct btrfs_fs_info *fs_info;
	/* sysfs kobjects */
	struct kobject super_kobj;
	struct kobject *device_dir_kobj;
@@ -543,5 +544,7 @@ static inline void unlock_chunks(struct btrfs_root *root)
}

struct list_head *btrfs_get_fs_uuids(void);
void btrfs_set_fs_info_ptr(struct btrfs_fs_info *fs_info);
void btrfs_reset_fs_info_ptr(struct btrfs_fs_info *fs_info);

#endif