s390/dasd: fix memory leak caused by dangling references to request_queue
After the call to del_gendisk, the gendisk still holds a reference to its request_queue. We must not modify the gendisks queue pointer before the put_disk call, or the gendisk_release function cannot release the reference and the memory for the request_queue structure is lost. Signed-off-by: Stefan Weinhuber <wein@de.ibm.com> Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
This commit is contained in:
Родитель
af91706d5d
Коммит
b2b0154e49
|
@ -87,7 +87,6 @@ void dasd_gendisk_free(struct dasd_block *block)
|
||||||
{
|
{
|
||||||
if (block->gdp) {
|
if (block->gdp) {
|
||||||
del_gendisk(block->gdp);
|
del_gendisk(block->gdp);
|
||||||
block->gdp->queue = NULL;
|
|
||||||
block->gdp->private_data = NULL;
|
block->gdp->private_data = NULL;
|
||||||
put_disk(block->gdp);
|
put_disk(block->gdp);
|
||||||
block->gdp = NULL;
|
block->gdp = NULL;
|
||||||
|
|
Загрузка…
Ссылка в новой задаче