aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/nvdimm/blk.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/nvdimm/blk.c')
-rw-r--r--drivers/nvdimm/blk.c11
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