diff options
| author | Luis Chamberlain <mcgrof@kernel.org> | 2021-07-13 20:57:06 +0000 |
|---|---|---|
| committer | Luis Chamberlain <mcgrof@kernel.org> | 2021-07-14 20:57:36 -0700 |
| commit | 85a77f9a18059a794aa2e33a13f52b73f20dbb08 (patch) | |
| tree | ca6eefb1ce9e439b0cf6be450634f2ab0a00fe1c | |
| parent | fbf4a4095748069770a3178f0db3f3e81b16cc0c (diff) | |
| download | linux-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.c | 7 |
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); } } |
