s390/dasd: fix memory leak caused by dangling references to request_queue
authorStefan Weinhuber <wein@de.ibm.com>
Fri, 29 Nov 2013 14:37:20 +0000 (15:37 +0100)
committerMartin Schwidefsky <schwidefsky@de.ibm.com>
Mon, 2 Dec 2013 14:31:06 +0000 (15:31 +0100)
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>
drivers/s390/block/dasd_genhd.c

index f649217..f224d59 100644 (file)
@@ -87,7 +87,6 @@ void dasd_gendisk_free(struct dasd_block *block)
 {
        if (block->gdp) {
                del_gendisk(block->gdp);
-               block->gdp->queue = NULL;
                block->gdp->private_data = NULL;
                put_disk(block->gdp);
                block->gdp = NULL;