diff options
| -rw-r--r-- | fs/btrfs/volumes.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/fs/btrfs/volumes.c b/fs/btrfs/volumes.c index b8708f994e67..3b394503bd4e 100644 --- a/fs/btrfs/volumes.c +++ b/fs/btrfs/volumes.c | |||
| @@ -569,9 +569,11 @@ static int __btrfs_close_devices(struct btrfs_fs_devices *fs_devices) | |||
| 569 | memcpy(new_device, device, sizeof(*new_device)); | 569 | memcpy(new_device, device, sizeof(*new_device)); |
| 570 | 570 | ||
| 571 | /* Safe because we are under uuid_mutex */ | 571 | /* Safe because we are under uuid_mutex */ |
| 572 | name = rcu_string_strdup(device->name->str, GFP_NOFS); | 572 | if (device->name) { |
| 573 | BUG_ON(device->name && !name); /* -ENOMEM */ | 573 | name = rcu_string_strdup(device->name->str, GFP_NOFS); |
| 574 | rcu_assign_pointer(new_device->name, name); | 574 | BUG_ON(device->name && !name); /* -ENOMEM */ |
| 575 | rcu_assign_pointer(new_device->name, name); | ||
| 576 | } | ||
| 575 | new_device->bdev = NULL; | 577 | new_device->bdev = NULL; |
| 576 | new_device->writeable = 0; | 578 | new_device->writeable = 0; |
| 577 | new_device->in_fs_metadata = 0; | 579 | new_device->in_fs_metadata = 0; |
