Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 1448a2a5 authored by Omar Sandoval's avatar Omar Sandoval Committed by Jens Axboe
Browse files

swim: fix cleanup on setup error



If we fail to allocate the request queue for a disk, we still need to
free that disk, not just the previous ones. Additionally, we need to
cleanup the previous request queues.

Signed-off-by: default avatarOmar Sandoval <osandov@fb.com>
Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
parent 891b7c5f
Loading
Loading
Loading
Loading
+11 −2
Original line number Diff line number Diff line
@@ -887,8 +887,17 @@ static int swim_floppy_init(struct swim_priv *swd)

exit_put_disks:
	unregister_blkdev(FLOPPY_MAJOR, "fd");
	while (drive--)
		put_disk(swd->unit[drive].disk);
	do {
		struct gendisk *disk = swd->unit[drive].disk;

		if (disk) {
			if (disk->queue) {
				blk_cleanup_queue(disk->queue);
				disk->queue = NULL;
			}
			put_disk(disk);
		}
	} while (drive--);
	return err;
}