diff options
Diffstat (limited to 'drivers/nvdimm/blk.c')
-rw-r--r-- | drivers/nvdimm/blk.c | 11 |
1 files changed, 4 insertions, 7 deletions
diff --git a/drivers/nvdimm/blk.c b/drivers/nvdimm/blk.c index 7e262ef06ede..9faaa9694d87 100644 --- a/drivers/nvdimm/blk.c +++ b/drivers/nvdimm/blk.c | |||
@@ -267,10 +267,8 @@ static int nsblk_attach_disk(struct nd_namespace_blk *nsblk) | |||
267 | q = blk_alloc_queue(GFP_KERNEL); | 267 | q = blk_alloc_queue(GFP_KERNEL); |
268 | if (!q) | 268 | if (!q) |
269 | return -ENOMEM; | 269 | return -ENOMEM; |
270 | if (devm_add_action(dev, nd_blk_release_queue, q)) { | 270 | if (devm_add_action_or_reset(dev, nd_blk_release_queue, q)) |
271 | blk_cleanup_queue(q); | ||
272 | return -ENOMEM; | 271 | return -ENOMEM; |
273 | } | ||
274 | 272 | ||
275 | blk_queue_make_request(q, nd_blk_make_request); | 273 | blk_queue_make_request(q, nd_blk_make_request); |
276 | blk_queue_max_hw_sectors(q, UINT_MAX); | 274 | blk_queue_max_hw_sectors(q, UINT_MAX); |
@@ -282,10 +280,6 @@ static int nsblk_attach_disk(struct nd_namespace_blk *nsblk) | |||
282 | disk = alloc_disk(0); | 280 | disk = alloc_disk(0); |
283 | if (!disk) | 281 | if (!disk) |
284 | return -ENOMEM; | 282 | return -ENOMEM; |
285 | if (devm_add_action(dev, nd_blk_release_disk, disk)) { | ||
286 | put_disk(disk); | ||
287 | return -ENOMEM; | ||
288 | } | ||
289 | 283 | ||
290 | disk->first_minor = 0; | 284 | disk->first_minor = 0; |
291 | disk->fops = &nd_blk_fops; | 285 | disk->fops = &nd_blk_fops; |
@@ -295,6 +289,9 @@ static int nsblk_attach_disk(struct nd_namespace_blk *nsblk) | |||
295 | set_capacity(disk, 0); | 289 | set_capacity(disk, 0); |
296 | device_add_disk(dev, disk); | 290 | device_add_disk(dev, disk); |
297 | 291 | ||
292 | if (devm_add_action_or_reset(dev, nd_blk_release_disk, disk)) | ||
293 | return -ENOMEM; | ||
294 | |||
298 | if (nsblk_meta_size(nsblk)) { | 295 | if (nsblk_meta_size(nsblk)) { |
299 | int rc = nd_integrity_init(disk, nsblk_meta_size(nsblk)); | 296 | int rc = nd_integrity_init(disk, nsblk_meta_size(nsblk)); |
300 | 297 | ||