Commit 89de1669 authored by Daniel Stodden's avatar Daniel Stodden Committed by Jens Axboe
Browse files

blkfront: Fix backtrace in del_gendisk



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: default avatarDaniel Stodden <daniel.stodden@citrix.com>
Signed-off-by: default avatarJeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>
parent 5b61cb90
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -1021,14 +1021,14 @@ static void blkfront_closing(struct blkfront_info *info)
	/* Flush gnttab callback work. Must be done with no locks held. */
	flush_scheduled_work();

	blk_cleanup_queue(info->rq);
	info->rq = NULL;

	minor = info->gd->first_minor;
	nr_minors = info->gd->minors;
	del_gendisk(info->gd);
	xlbd_release_minors(minor, nr_minors);

	blk_cleanup_queue(info->rq);
	info->rq = NULL;

 out:
	if (info->xbdev)
		xenbus_frontend_closed(info->xbdev);