Re: [PATCH 03/19] block: cleanup del_gendisk a bit

2020-09-04 Thread Hannes Reinecke

On 9/3/20 10:01 AM, Christoph Hellwig wrote:

Merge three hidden gendisk checks into one.

Signed-off-by: Christoph Hellwig 
---
  block/genhd.c | 15 ---
  1 file changed, 8 insertions(+), 7 deletions(-)


Reviewed-by: Hannes Reinecke 

Cheers,

Hannes
--
Dr. Hannes ReineckeKernel Storage Architect
h...@suse.de  +49 911 74053 688
SUSE Software Solutions GmbH, Maxfeldstr. 5, 90409 Nürnberg
HRB 36809 (AG Nürnberg), Geschäftsführer: Felix Imendörffer


[PATCH 03/19] block: cleanup del_gendisk a bit

2020-09-03 Thread Christoph Hellwig
Merge three hidden gendisk checks into one.

Signed-off-by: Christoph Hellwig 
---
 block/genhd.c | 15 ---
 1 file changed, 8 insertions(+), 7 deletions(-)

diff --git a/block/genhd.c b/block/genhd.c
index 44f69f4b2c5aa6..ec9b64207d9c2e 100644
--- a/block/genhd.c
+++ b/block/genhd.c
@@ -948,6 +948,9 @@ void del_gendisk(struct gendisk *disk)
 
might_sleep();
 
+   if (WARN_ON_ONCE(!disk->queue))
+   return;
+
blk_integrity_del(disk);
disk_del_events(disk);
 
@@ -970,20 +973,18 @@ void del_gendisk(struct gendisk *disk)
disk->flags &= ~GENHD_FL_UP;
up_write(>lookup_sem);
 
-   if (!(disk->flags & GENHD_FL_HIDDEN))
+   if (!(disk->flags & GENHD_FL_HIDDEN)) {
sysfs_remove_link(_to_dev(disk)->kobj, "bdi");
-   if (disk->queue) {
+
/*
 * Unregister bdi before releasing device numbers (as they can
 * get reused and we'd get clashes in sysfs).
 */
-   if (!(disk->flags & GENHD_FL_HIDDEN))
-   bdi_unregister(disk->queue->backing_dev_info);
-   blk_unregister_queue(disk);
-   } else {
-   WARN_ON(1);
+   bdi_unregister(disk->queue->backing_dev_info);
}
 
+   blk_unregister_queue(disk);
+   
if (!(disk->flags & GENHD_FL_HIDDEN))
blk_unregister_region(disk_devt(disk), disk->minors);
/*
-- 
2.28.0



[PATCH 03/19] block: cleanup del_gendisk a bit

2020-08-30 Thread Christoph Hellwig
Merge three hidden gendisk checks into one.

Signed-off-by: Christoph Hellwig 
---
 block/genhd.c | 14 +++---
 1 file changed, 7 insertions(+), 7 deletions(-)

diff --git a/block/genhd.c b/block/genhd.c
index cb9a51be35b053..df6485223a2c3d 100644
--- a/block/genhd.c
+++ b/block/genhd.c
@@ -973,22 +973,22 @@ void del_gendisk(struct gendisk *disk)
disk->flags &= ~GENHD_FL_UP;
up_write(>lookup_sem);
 
-   if (!(disk->flags & GENHD_FL_HIDDEN))
+   WARN_ON(!disk->queue);
+
+   if (!(disk->flags & GENHD_FL_HIDDEN)) {
sysfs_remove_link(_to_dev(disk)->kobj, "bdi");
-   if (disk->queue) {
+
/*
 * Unregister bdi before releasing device numbers (as they can
 * get reused and we'd get clashes in sysfs).
 */
-   if (!(disk->flags & GENHD_FL_HIDDEN))
-   bdi_unregister(disk->queue->backing_dev_info);
+   bdi_unregister(disk->queue->backing_dev_info);
blk_unregister_queue(disk);
+   blk_unregister_region(disk_devt(disk), disk->minors);
} else {
-   WARN_ON(1);
+   blk_unregister_queue(disk);
}
 
-   if (!(disk->flags & GENHD_FL_HIDDEN))
-   blk_unregister_region(disk_devt(disk), disk->minors);
/*
 * Remove gendisk pointer from idr so that it cannot be looked up
 * while RCU period before freeing gendisk is running to prevent
-- 
2.28.0



[PATCH 03/19] block: cleanup del_gendisk a bit

2020-08-26 Thread Christoph Hellwig
Merge three hidden gendisk checks into one.

Signed-off-by: Christoph Hellwig 
---
 block/genhd.c | 14 +++---
 1 file changed, 7 insertions(+), 7 deletions(-)

diff --git a/block/genhd.c b/block/genhd.c
index cb9a51be35b053..df6485223a2c3d 100644
--- a/block/genhd.c
+++ b/block/genhd.c
@@ -973,22 +973,22 @@ void del_gendisk(struct gendisk *disk)
disk->flags &= ~GENHD_FL_UP;
up_write(>lookup_sem);
 
-   if (!(disk->flags & GENHD_FL_HIDDEN))
+   WARN_ON(!disk->queue);
+
+   if (!(disk->flags & GENHD_FL_HIDDEN)) {
sysfs_remove_link(_to_dev(disk)->kobj, "bdi");
-   if (disk->queue) {
+
/*
 * Unregister bdi before releasing device numbers (as they can
 * get reused and we'd get clashes in sysfs).
 */
-   if (!(disk->flags & GENHD_FL_HIDDEN))
-   bdi_unregister(disk->queue->backing_dev_info);
+   bdi_unregister(disk->queue->backing_dev_info);
blk_unregister_queue(disk);
+   blk_unregister_region(disk_devt(disk), disk->minors);
} else {
-   WARN_ON(1);
+   blk_unregister_queue(disk);
}
 
-   if (!(disk->flags & GENHD_FL_HIDDEN))
-   blk_unregister_region(disk_devt(disk), disk->minors);
/*
 * Remove gendisk pointer from idr so that it cannot be looked up
 * while RCU period before freeing gendisk is running to prevent
-- 
2.28.0