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

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

Btrfs: sysfs: add support to show replacing target in the sysfs



This patch will add support to show the replacing target in sysfs
during the process of replacement.

Signed-off-by: default avatarAnand Jain <anand.jain@oracle.com>
Signed-off-by: default avatarDavid Sterba <dsterba@suse.cz>
parent 4fde46f0
Loading
Loading
Loading
Loading
+4 −1
Original line number Original line Diff line number Diff line
@@ -376,6 +376,10 @@ int btrfs_dev_replace_start(struct btrfs_root *root,
	WARN_ON(!tgt_device);
	WARN_ON(!tgt_device);
	dev_replace->tgtdev = tgt_device;
	dev_replace->tgtdev = tgt_device;


	ret = btrfs_kobj_add_device(tgt_device->fs_devices, tgt_device);
	if (ret)
		btrfs_error(root->fs_info, ret, "kobj add dev failed");

	printk_in_rcu(KERN_INFO
	printk_in_rcu(KERN_INFO
		      "BTRFS: dev_replace from %s (devid %llu) to %s started\n",
		      "BTRFS: dev_replace from %s (devid %llu) to %s started\n",
		      src_device->missing ? "<missing disk>" :
		      src_device->missing ? "<missing disk>" :
@@ -584,7 +588,6 @@ static int btrfs_dev_replace_finishing(struct btrfs_fs_info *fs_info,


	/* replace the sysfs entry */
	/* replace the sysfs entry */
	btrfs_kobj_rm_device(fs_info->fs_devices, src_device);
	btrfs_kobj_rm_device(fs_info->fs_devices, src_device);
	btrfs_kobj_add_device(fs_info->fs_devices, tgt_device);
	btrfs_rm_dev_replace_free_srcdev(fs_info, src_device);
	btrfs_rm_dev_replace_free_srcdev(fs_info, src_device);


	/* write back the superblocks */
	/* write back the superblocks */
+3 −0
Original line number Original line Diff line number Diff line
@@ -1940,6 +1940,9 @@ void btrfs_destroy_dev_replace_tgtdev(struct btrfs_fs_info *fs_info,
	mutex_lock(&uuid_mutex);
	mutex_lock(&uuid_mutex);
	WARN_ON(!tgtdev);
	WARN_ON(!tgtdev);
	mutex_lock(&fs_info->fs_devices->device_list_mutex);
	mutex_lock(&fs_info->fs_devices->device_list_mutex);

	btrfs_kobj_rm_device(fs_info->fs_devices, tgtdev);

	if (tgtdev->bdev) {
	if (tgtdev->bdev) {
		btrfs_scratch_superblock(tgtdev);
		btrfs_scratch_superblock(tgtdev);
		fs_info->fs_devices->open_devices--;
		fs_info->fs_devices->open_devices--;