Commit edad2e66 authored by Matias Bjørling's avatar Matias Bjørling Committed by Jens Axboe

lightnvm: prematurely activate nvm_dev

We register with nvm_devices when there registration can still fail.
Move the final registration at the end of the nvm_register function
to make sure we are fully registered when added to the nvm_devices list.
Signed-off-by: default avatarMatias Bjørling <m@bjorling.me>
Signed-off-by: default avatarJens Axboe <axboe@fb.com>
parent 4264c980
...@@ -318,10 +318,6 @@ int nvm_register(struct request_queue *q, char *disk_name, ...@@ -318,10 +318,6 @@ int nvm_register(struct request_queue *q, char *disk_name,
if (ret) if (ret)
goto err_init; goto err_init;
down_write(&nvm_lock);
list_add(&dev->devices, &nvm_devices);
up_write(&nvm_lock);
if (dev->ops->max_phys_sect > 1) { if (dev->ops->max_phys_sect > 1) {
dev->ppalist_pool = dev->ops->create_dma_pool(dev->q, dev->ppalist_pool = dev->ops->create_dma_pool(dev->q,
"ppalist"); "ppalist");
...@@ -334,6 +330,10 @@ int nvm_register(struct request_queue *q, char *disk_name, ...@@ -334,6 +330,10 @@ int nvm_register(struct request_queue *q, char *disk_name,
return -EINVAL; return -EINVAL;
} }
down_write(&nvm_lock);
list_add(&dev->devices, &nvm_devices);
up_write(&nvm_lock);
return 0; return 0;
err_init: err_init:
kfree(dev); kfree(dev);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment