diff options
author | David Teigland <teigland@redhat.com> | 2006-01-06 00:20:00 -0800 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2006-01-06 08:33:59 -0800 |
commit | 637842cfdbe2b981f7088f7633e630570f58efaf (patch) | |
tree | 05b64c2f30612ab126df9e3ba8448d62101341d2 /drivers/md/dm.c | |
parent | 9f708e40fe040e79f6c393a282f0701c9f8dc174 (diff) |
[PATCH] device-mapper: add dm_find_md
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>
Diffstat (limited to 'drivers/md/dm.c')
-rw-r--r-- | drivers/md/dm.c | 19 |
1 files changed, 14 insertions, 5 deletions
diff --git a/drivers/md/dm.c b/drivers/md/dm.c index 930b9fc2795..27cd234cf68 100644 --- a/drivers/md/dm.c +++ b/drivers/md/dm.c @@ -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; } |