genhd: Fix leaked module reference for NVME devices
Commit8ddcd65325
"block: introduce GENHD_FL_HIDDEN" added handling of hidden devices to get_gendisk() but forgot to drop module reference which is also acquired by get_disk(). Drop the reference as necessary. Arguably the function naming here is misleading as put_disk() is *not* the counterpart of get_disk() but let's fix that in the follow up commit since that will be more intrusive. Fixes:8ddcd65325
CC: Christoph Hellwig <hch@lst.de> Signed-off-by: Jan Kara <jack@suse.cz> Signed-off-by: Jens Axboe <axboe@kernel.dk>
This commit is contained in:
parent
d9c10e5b88
commit
d52987b524
@ -817,7 +817,10 @@ struct gendisk *get_gendisk(dev_t devt, int *partno)
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (disk && unlikely(disk->flags & GENHD_FL_HIDDEN)) {
|
if (disk && unlikely(disk->flags & GENHD_FL_HIDDEN)) {
|
||||||
|
struct module *owner = disk->fops->owner;
|
||||||
|
|
||||||
put_disk(disk);
|
put_disk(disk);
|
||||||
|
module_put(owner);
|
||||||
disk = NULL;
|
disk = NULL;
|
||||||
}
|
}
|
||||||
return disk;
|
return disk;
|
||||||
|
Loading…
Reference in New Issue
Block a user