Bug 185445 - kernel dm: fix free_dev del_gendisk
Summary: kernel dm: fix free_dev del_gendisk
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Red Hat Enterprise Linux 4
Classification: Red Hat
Component: kernel
Version: 4.0
Hardware: All
OS: Linux
medium
medium
Target Milestone: ---
: ---
Assignee: Alasdair Kergon
QA Contact: Brian Brock
URL:
Whiteboard:
: 183664 (view as bug list)
Depends On:
Blocks: 181409
TreeView+ depends on / blocked
 
Reported: 2006-03-14 20:46 UTC by Alasdair Kergon
Modified: 2007-11-30 22:07 UTC (History)
2 users (show)

Fixed In Version: RHSA-2006-0575
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2006-08-10 22:40:57 UTC
Target Upstream Version:
Embargoed:


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
Red Hat Product Errata RHSA-2006:0575 0 normal SHIPPED_LIVE Important: Updated kernel packages available for Red Hat Enterprise Linux 4 Update 4 2006-08-10 04:00:00 UTC

Description Alasdair Kergon 2006-03-14 20:46:14 UTC
From: Jun'ichi Nomura <j-nomura.nec.com>
 
Don't release the minor number for reuse within device-mapper
until after del_gendisk() has released it.
 
Signed-off-by: Jun'ichi Nomura <j-nomura.nec.com>
Signed-Off-By: Alasdair G Kergon <agk>
 
Index: linux-2.6.16-rc1/drivers/md/dm.c
===================================================================
--- linux-2.6.16-rc1.orig/drivers/md/dm.c       2006-03-01 21:42:55.000000000 +0000
+++ linux-2.6.16-rc1/drivers/md/dm.c    2006-03-01 21:42:59.000000000 +0000
@@ -849,14 +849,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);

Comment 2 Alasdair Kergon 2006-03-14 21:22:19 UTC
*** Bug 183664 has been marked as a duplicate of this bug. ***

Comment 3 Jason Baron 2006-03-28 17:48:56 UTC
committed in stream u4 build 34.9. A test kernel with this patch is available
from http://people.redhat.com/~jbaron/rhel4/


Comment 7 Red Hat Bugzilla 2006-08-10 22:40:57 UTC
An advisory has been issued which should help the problem
described in this bug report. This report is therefore being
closed with a resolution of ERRATA. For more information
on the solution and/or where to find the updated files,
please follow the link below. You may reopen this bug report
if the solution does not work for you.

http://rhn.redhat.com/errata/RHSA-2006-0575.html



Note You need to log in before you can comment on or make changes to this bug.