block.c (03ab8e6297acd1bc0eedaa050e2a1635c576fd11) | block.c (8b9ab62662048a3274361c7e5f64037c2c133e2c) |
---|---|
1// SPDX-License-Identifier: GPL-2.0-only 2/* 3 * Copyright (c) 2014 Ezequiel Garcia 4 * Copyright (c) 2011 Free Electrons 5 * 6 * Driver parameter handling strongly based on drivers/mtd/ubi/build.c 7 * Copyright (c) International Business Machines Corp., 2006 8 * Copyright (c) Nokia Corporation, 2007 --- 453 unchanged lines hidden (view full) --- 462 return 0; 463 464out_destroy_wq: 465 list_del(&dev->list); 466 destroy_workqueue(dev->wq); 467out_remove_minor: 468 idr_remove(&ubiblock_minor_idr, gd->first_minor); 469out_cleanup_disk: | 1// SPDX-License-Identifier: GPL-2.0-only 2/* 3 * Copyright (c) 2014 Ezequiel Garcia 4 * Copyright (c) 2011 Free Electrons 5 * 6 * Driver parameter handling strongly based on drivers/mtd/ubi/build.c 7 * Copyright (c) International Business Machines Corp., 2006 8 * Copyright (c) Nokia Corporation, 2007 --- 453 unchanged lines hidden (view full) --- 462 return 0; 463 464out_destroy_wq: 465 list_del(&dev->list); 466 destroy_workqueue(dev->wq); 467out_remove_minor: 468 idr_remove(&ubiblock_minor_idr, gd->first_minor); 469out_cleanup_disk: |
470 blk_cleanup_disk(dev->gd); | 470 put_disk(dev->gd); |
471out_free_tags: 472 blk_mq_free_tag_set(&dev->tag_set); 473out_free_dev: 474 kfree(dev); 475out_unlock: 476 mutex_unlock(&devices_mutex); 477 478 return ret; 479} 480 481static void ubiblock_cleanup(struct ubiblock *dev) 482{ 483 /* Stop new requests to arrive */ 484 del_gendisk(dev->gd); 485 /* Flush pending work */ 486 destroy_workqueue(dev->wq); 487 /* Finally destroy the blk queue */ 488 dev_info(disk_to_dev(dev->gd), "released"); | 471out_free_tags: 472 blk_mq_free_tag_set(&dev->tag_set); 473out_free_dev: 474 kfree(dev); 475out_unlock: 476 mutex_unlock(&devices_mutex); 477 478 return ret; 479} 480 481static void ubiblock_cleanup(struct ubiblock *dev) 482{ 483 /* Stop new requests to arrive */ 484 del_gendisk(dev->gd); 485 /* Flush pending work */ 486 destroy_workqueue(dev->wq); 487 /* Finally destroy the blk queue */ 488 dev_info(disk_to_dev(dev->gd), "released"); |
489 blk_cleanup_disk(dev->gd); | 489 put_disk(dev->gd); |
490 blk_mq_free_tag_set(&dev->tag_set); 491 idr_remove(&ubiblock_minor_idr, dev->gd->first_minor); 492} 493 494int ubiblock_remove(struct ubi_volume_info *vi) 495{ 496 struct ubiblock *dev; 497 int ret; --- 211 unchanged lines hidden --- | 490 blk_mq_free_tag_set(&dev->tag_set); 491 idr_remove(&ubiblock_minor_idr, dev->gd->first_minor); 492} 493 494int ubiblock_remove(struct ubi_volume_info *vi) 495{ 496 struct ubiblock *dev; 497 int ret; --- 211 unchanged lines hidden --- |