diff --git a/fs/btrfs/volumes.c b/fs/btrfs/volumes.c
index 7992dc4ea4ccecf1cc9d771dc72edb1d0455e16a..5d6010ba8b7eb3fc5121fc5e29a738c175c45865 100644
--- a/fs/btrfs/volumes.c
+++ b/fs/btrfs/volumes.c
@@ -650,6 +650,7 @@ static int __btrfs_close_devices(struct btrfs_fs_devices *fs_devices)
 		new_device->writeable = 0;
 		new_device->in_fs_metadata = 0;
 		new_device->can_discard = 0;
+		spin_lock_init(&new_device->io_lock);
 		list_replace_rcu(&device->dev_list, &new_device->dev_list);
 
 		call_rcu(&device->rcu, free_device);