[PATCH] device-mapper: add dm_find_md
authorDavid Teigland <teigland@redhat.com>
Fri, 6 Jan 2006 08:20:00 +0000 (00:20 -0800)
committerLinus Torvalds <torvalds@g5.osdl.org>
Fri, 6 Jan 2006 16:33:59 +0000 (08:33 -0800)
Abstract dm_find_md() from dm_get_mdptr() to allow use elsewhere.

Signed-off-by: Alasdair G Kergon <agk@redhat.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
drivers/md/dm.c

index 930b9fc27953766e94b2ce8869f6228feb5f04b3..27cd234cf6822686588440ba8727d1b7015e9907 100644 (file)
@@ -902,10 +902,9 @@ int dm_create_with_minor(unsigned int minor, struct mapped_device **result)
        return create_aux(minor, 1, result);
 }
 
-void *dm_get_mdptr(dev_t dev)
+static struct mapped_device *dm_find_md(dev_t dev)
 {
        struct mapped_device *md;
-       void *mdptr = NULL;
        unsigned minor = MINOR(dev);
 
        if (MAJOR(dev) != _major || minor >= (1 << MINORBITS))
@@ -914,12 +913,22 @@ void *dm_get_mdptr(dev_t dev)
        down(&_minor_lock);
 
        md = idr_find(&_minor_idr, minor);
-
-       if (md && (dm_disk(md)->first_minor == minor))
-               mdptr = md->interface_ptr;
+       if (!md || (dm_disk(md)->first_minor != minor))
+               md = NULL;
 
        up(&_minor_lock);
 
+       return md;
+}
+
+void *dm_get_mdptr(dev_t dev)
+{
+       struct mapped_device *md;
+       void *mdptr = NULL;
+
+       md = dm_find_md(dev);
+       if (md)
+               mdptr = md->interface_ptr;
        return mdptr;
 }