]> git.kernelconcepts.de Git - karo-tx-linux.git/commitdiff
blkfront: Fix backtrace in del_gendisk
authorDavid Vrabel <david.vrabel@citrix.com>
Wed, 14 Mar 2012 11:48:52 +0000 (11:48 +0000)
committerWilly Tarreau <w@1wt.eu>
Sat, 17 Mar 2012 10:14:52 +0000 (11:14 +0100)
Commit 89de1669ace055b56f1de1c9f5aca26dd7f17f25 upstream.

The call to del_gendisk follows an non-refcounted gd->queue
pointer. We release the last ref in blk_cleanup_queue. Fixed by
reordering releases accordingly.

Signed-off-by: Daniel Stodden <daniel.stodden@citrix.com>
Signed-off-by: Jeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>
Signed-off-by: David Vrabel <david.vrabel@citrix.com>
Signed-off-by: Willy Tarreau <w@1wt.eu>
drivers/block/xen-blkfront.c

index a2e8977abaadd580ec1fb71c3d8b45912e58ad1e..605d92e3cc6b5d528ee9b8c9d47cb0d43e94337c 100644 (file)
@@ -942,11 +942,11 @@ static void blkfront_closing(struct xenbus_device *dev)
        /* Flush gnttab callback work. Must be done with no locks held. */
        flush_scheduled_work();
 
+       del_gendisk(info->gd);
+
        blk_cleanup_queue(info->rq);
        info->rq = NULL;
 
-       del_gendisk(info->gd);
-
  out:
        xenbus_frontend_closed(dev);
 }