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

Commit 82372bc8 authored by Miao Xie's avatar Miao Xie Committed by Chris Mason
Browse files

Btrfs: make the logic of source device removing more clear



Signed-off-by: default avatarMiao Xie <miaox@cn.fujitsu.com>
Signed-off-by: default avatarChris Mason <clm@fb.com>
parent 67a2c45e
Loading
Loading
Loading
Loading
+1 −2
Original line number Diff line number Diff line
@@ -569,7 +569,6 @@ static int btrfs_dev_replace_finishing(struct btrfs_fs_info *fs_info,
	if (fs_info->fs_devices->latest_bdev == src_device->bdev)
		fs_info->fs_devices->latest_bdev = tgt_device->bdev;
	list_add(&tgt_device->dev_alloc_list, &fs_info->fs_devices->alloc_list);
	if (src_device->fs_devices->seeding)
	fs_info->fs_devices->rw_devices++;

	/* replace the sysfs entry */
+7 −12
Original line number Diff line number Diff line
@@ -1819,23 +1819,18 @@ void btrfs_rm_dev_replace_srcdev(struct btrfs_fs_info *fs_info,
	list_del_rcu(&srcdev->dev_list);
	list_del_rcu(&srcdev->dev_alloc_list);
	fs_devices->num_devices--;
	if (srcdev->missing) {
	if (srcdev->missing)
		fs_devices->missing_devices--;
		if (!fs_devices->seeding)
			fs_devices->rw_devices++;
	}

	if (srcdev->bdev) {
		fs_devices->open_devices--;

		/*
		 * zero out the old super if it is not writable
		 * (e.g. seed device)
		 */
		if (srcdev->writeable)
	if (srcdev->writeable) {
		fs_devices->rw_devices--;
		/* zero out the old super if it is writable */
		btrfs_scratch_superblock(srcdev);
	}

	if (srcdev->bdev)
		fs_devices->open_devices--;

	call_rcu(&srcdev->rcu, free_device);

	/*