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++;
+       fs_info->fs_devices->rw_devices++;
 
        /* replace the sysfs entry */
        btrfs_kobj_rm_device(fs_info, src_device);
 
        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->writeable) {
+               fs_devices->rw_devices--;
+               /* zero out the old super if it is writable */
+               btrfs_scratch_superblock(srcdev);
        }
 
-       if (srcdev->bdev) {
+       if (srcdev->bdev)
                fs_devices->open_devices--;
 
-               /*
-                * zero out the old super if it is not writable
-                * (e.g. seed device)
-                */
-               if (srcdev->writeable)
-                       btrfs_scratch_superblock(srcdev);
-       }
-
        call_rcu(&srcdev->rcu, free_device);
 
        /*