[lkml]   [2011]   [Jun]   [23]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
    Patch in this message
    Subject[34-longterm 131/247] md: correctly handle probe of an 'mdp' device.
    From: NeilBrown <>

    This is a commit scheduled for the next v2.6.34 longterm release.
    If you see a problem with using this for longterm, please comment.

    commit 8f5f02c460b7ca74ce55ce126ce0c1e58a3f923d upstream.

    'mdp' devices are md devices with preallocated device numbers
    for partitions. As such it is possible to mknod and open a partition
    before opening the whole device.

    this causes md_probe() to be called with a device number of a
    partition, which in-turn calls mddev_find with such a number.

    However mddev_find expects the number of a 'whole device' and
    does the wrong thing with partition numbers.

    So add code to mddev_find to remove the 'partition' part of
    a device number and just work with the 'whole device'.

    This patch addresses

    Signed-off-by: NeilBrown <>
    Signed-off-by: Paul Gortmaker <>
    drivers/md/md.c | 3 +++
    1 files changed, 3 insertions(+), 0 deletions(-)

    diff --git a/drivers/md/md.c b/drivers/md/md.c
    index 7db9ceb..f468ec6 100644
    --- a/drivers/md/md.c
    +++ b/drivers/md/md.c
    @@ -410,6 +410,9 @@ static mddev_t * mddev_find(dev_t unit)
    mddev_t *mddev, *new = NULL;

    + if (unit && MAJOR(unit) != MD_MAJOR)
    + unit &= ~((1<<MdpMinorShift)-1);


     \ /
      Last update: 2011-06-23 20:11    [W:0.019 / U:9.616 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site