aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLuis Chamberlain <mcgrof@kernel.org>2021-07-13 20:57:06 +0000
committerLuis Chamberlain <mcgrof@kernel.org>2021-07-14 20:57:36 -0700
commit85a77f9a18059a794aa2e33a13f52b73f20dbb08 (patch)
treeca6eefb1ce9e439b0cf6be450634f2ab0a00fe1c
parentfbf4a4095748069770a3178f0db3f3e81b16cc0c (diff)
downloadlinux-next-85a77f9a18059a794aa2e33a13f52b73f20dbb08.tar.gz
paride/pd: add a registered bool
We don't keep track of when a disk was registered successfully, because add_disk() didn't have error handling. But since we now have support for that we must keep track of which disks did get added successfully so we can only del_gendisk() them later. This change produces no functional changes. It just makes the subsequent changes easier to read. Signed-off-by: Luis Chamberlain <mcgrof@kernel.org>
-rw-r--r--drivers/block/paride/pd.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/drivers/block/paride/pd.c b/drivers/block/paride/pd.c
index 3b2b8e872beb6..ef2b3b3b36435 100644
--- a/drivers/block/paride/pd.c
+++ b/drivers/block/paride/pd.c
@@ -234,6 +234,7 @@ struct pd_unit {
int removable; /* removable media device ? */
int standby;
int alt_geom;
+ bool registered;
char name[PD_NAMELEN]; /* pda, pdb, etc ... */
struct gendisk *gd;
struct blk_mq_tag_set tag_set;
@@ -973,6 +974,7 @@ static int pd_detect(void)
if (disk->gd) {
set_capacity(disk->gd, disk->capacity);
add_disk(disk->gd);
+ disk->registered = true;
found = 1;
}
}
@@ -1013,9 +1015,10 @@ static void __exit pd_exit(void)
struct gendisk *p = disk->gd;
if (p) {
disk->gd = NULL;
- del_gendisk(p);
- blk_mq_free_tag_set(&disk->tag_set);
+ if (p->registered)
+ del_gendisk(p);
blk_cleanup_disk(p);
+ blk_mq_free_tag_set(&disk->tag_set);
pi_release(disk->pi);
}
}