--- /dev/null
+From stable-bounces@linux.kernel.org Fri Feb 24 13:09:13 2006
+Date: Fri, 24 Feb 2006 13:04:25 -0800
+From: akpm@osdl.org
+To: torvalds@osdl.org
+Cc: j-nomura@ce.jp.nec.com, stable@kernel.org, agk@redhat.com
+Subject: [PATCH] dm: free minor after unlink gendisk
+
+
+From: "Jun'ichi Nomura" <j-nomura@ce.jp.nec.com>
+
+Minor number should be freed after del_gendisk(). Otherwise, there could
+be a window where 2 registered gendisk has same minor number.
+
+Signed-off-by: Jun'ichi Nomura <j-nomura@ce.jp.nec.com>
+Acked-by: Alasdair G Kergon <agk@redhat.com>
+Cc: <stable@kernel.org>
+Signed-off-by: Andrew Morton <akpm@osdl.org>
+Signed-off-by: Chris Wright <chrisw@sous-sol.org>
+---
+
+ drivers/md/dm.c | 4 +++-
+ 1 files changed, 3 insertions(+), 1 deletion(-)
+
+--- linux-2.6.15.4.orig/drivers/md/dm.c
++++ linux-2.6.15.4/drivers/md/dm.c
+@@ -812,14 +812,16 @@ static struct mapped_device *alloc_dev(u
+
+ static void free_dev(struct mapped_device *md)
+ {
++ unsigned int minor = md->disk->first_minor;
++
+ if (md->suspended_bdev) {
+ thaw_bdev(md->suspended_bdev, NULL);
+ bdput(md->suspended_bdev);
+ }
+- free_minor(md->disk->first_minor);
+ mempool_destroy(md->tio_pool);
+ mempool_destroy(md->io_pool);
+ del_gendisk(md->disk);
++ free_minor(minor);
+ put_disk(md->disk);
+ blk_put_queue(md->queue);
+ kfree(md);
--- /dev/null
+From stable-bounces@linux.kernel.org Fri Feb 24 13:09:14 2006
+Date: Fri, 24 Feb 2006 13:04:24 -0800
+From: akpm@osdl.org
+To: torvalds@osdl.org
+Cc: j-nomura@ce.jp.nec.com, stable@kernel.org, agk@redhat.com
+Subject: [PATCH] dm: missing bdput/thaw_bdev at removal
+
+
+From: "Jun'ichi Nomura" <j-nomura@ce.jp.nec.com>
+
+Need to unfreeze and release bdev otherwise the bdev inode with
+inconsistent state is reused later and cause problem.
+
+Signed-off-by: Jun'ichi Nomura <j-nomura@ce.jp.nec.com>
+Acked-by: Alasdair G Kergon <agk@redhat.com>
+Cc: <stable@kernel.org>
+Signed-off-by: Andrew Morton <akpm@osdl.org>
+Signed-off-by: Chris Wright <chrisw@sous-sol.org>
+---
+
+ drivers/md/dm.c | 4 ++++
+ 1 files changed, 4 insertions(+)
+
+--- linux-2.6.15.4.orig/drivers/md/dm.c
++++ linux-2.6.15.4/drivers/md/dm.c
+@@ -812,6 +812,10 @@ static struct mapped_device *alloc_dev(u
+
+ static void free_dev(struct mapped_device *md)
+ {
++ if (md->suspended_bdev) {
++ thaw_bdev(md->suspended_bdev, NULL);
++ bdput(md->suspended_bdev);
++ }
+ free_minor(md->disk->first_minor);
+ mempool_destroy(md->tio_pool);
+ mempool_destroy(md->io_pool);
alsa-fix-bogus-snd_device_free-in-opl3-oss.c.patch
cfi-init-wait-queue-in-chip-struct.patch
gbefb-set-default-of-fb_gbe_mem-to-4-mb.patch
+dm-missing-bdput-thaw_bdev-at-removal.patch
+dm-free-minor-after-unlink-gendisk.patch