diff options
Diffstat (limited to 'fs/btrfs/volumes.c')
| -rw-r--r-- | fs/btrfs/volumes.c | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/fs/btrfs/volumes.c b/fs/btrfs/volumes.c index 0052ca8264d9..043b215769c2 100644 --- a/fs/btrfs/volumes.c +++ b/fs/btrfs/volumes.c | |||
| @@ -796,7 +796,8 @@ static int __btrfs_open_devices(struct btrfs_fs_devices *fs_devices, | |||
| 796 | fs_devices->rotating = 1; | 796 | fs_devices->rotating = 1; |
| 797 | 797 | ||
| 798 | fs_devices->open_devices++; | 798 | fs_devices->open_devices++; |
| 799 | if (device->writeable && !device->is_tgtdev_for_dev_replace) { | 799 | if (device->writeable && |
| 800 | device->devid != BTRFS_DEV_REPLACE_DEVID) { | ||
| 800 | fs_devices->rw_devices++; | 801 | fs_devices->rw_devices++; |
| 801 | list_add(&device->dev_alloc_list, | 802 | list_add(&device->dev_alloc_list, |
| 802 | &fs_devices->alloc_list); | 803 | &fs_devices->alloc_list); |
| @@ -911,9 +912,9 @@ int btrfs_scan_one_device(const char *path, fmode_t flags, void *holder, | |||
| 911 | if (disk_super->label[0]) { | 912 | if (disk_super->label[0]) { |
| 912 | if (disk_super->label[BTRFS_LABEL_SIZE - 1]) | 913 | if (disk_super->label[BTRFS_LABEL_SIZE - 1]) |
| 913 | disk_super->label[BTRFS_LABEL_SIZE - 1] = '\0'; | 914 | disk_super->label[BTRFS_LABEL_SIZE - 1] = '\0'; |
| 914 | printk(KERN_INFO "device label %s ", disk_super->label); | 915 | printk(KERN_INFO "btrfs: device label %s ", disk_super->label); |
| 915 | } else { | 916 | } else { |
| 916 | printk(KERN_INFO "device fsid %pU ", disk_super->fsid); | 917 | printk(KERN_INFO "btrfs: device fsid %pU ", disk_super->fsid); |
| 917 | } | 918 | } |
| 918 | 919 | ||
| 919 | printk(KERN_CONT "devid %llu transid %llu %s\n", devid, transid, path); | 920 | printk(KERN_CONT "devid %llu transid %llu %s\n", devid, transid, path); |
| @@ -1715,6 +1716,7 @@ void btrfs_rm_dev_replace_srcdev(struct btrfs_fs_info *fs_info, | |||
| 1715 | struct btrfs_device *srcdev) | 1716 | struct btrfs_device *srcdev) |
| 1716 | { | 1717 | { |
| 1717 | WARN_ON(!mutex_is_locked(&fs_info->fs_devices->device_list_mutex)); | 1718 | WARN_ON(!mutex_is_locked(&fs_info->fs_devices->device_list_mutex)); |
| 1719 | |||
| 1718 | list_del_rcu(&srcdev->dev_list); | 1720 | list_del_rcu(&srcdev->dev_list); |
| 1719 | list_del_rcu(&srcdev->dev_alloc_list); | 1721 | list_del_rcu(&srcdev->dev_alloc_list); |
| 1720 | fs_info->fs_devices->num_devices--; | 1722 | fs_info->fs_devices->num_devices--; |
| @@ -1724,9 +1726,13 @@ void btrfs_rm_dev_replace_srcdev(struct btrfs_fs_info *fs_info, | |||
| 1724 | } | 1726 | } |
| 1725 | if (srcdev->can_discard) | 1727 | if (srcdev->can_discard) |
| 1726 | fs_info->fs_devices->num_can_discard--; | 1728 | fs_info->fs_devices->num_can_discard--; |
| 1727 | if (srcdev->bdev) | 1729 | if (srcdev->bdev) { |
| 1728 | fs_info->fs_devices->open_devices--; | 1730 | fs_info->fs_devices->open_devices--; |
| 1729 | 1731 | ||
| 1732 | /* zero out the old super */ | ||
| 1733 | btrfs_scratch_superblock(srcdev); | ||
| 1734 | } | ||
| 1735 | |||
| 1730 | call_rcu(&srcdev->rcu, free_device); | 1736 | call_rcu(&srcdev->rcu, free_device); |
| 1731 | } | 1737 | } |
| 1732 | 1738 | ||
