From: David Teigland Abstract dm_find_md() from dm_get_mdptr() to allow use elsewhere. Signed-off-by: Alasdair G Kergon Signed-off-by: Andrew Morton --- drivers/md/dm.c | 19 ++++++++++++++----- 1 files changed, 14 insertions(+), 5 deletions(-) diff -puN drivers/md/dm.c~device-mapper-add-dm_find_md drivers/md/dm.c --- devel/drivers/md/dm.c~device-mapper-add-dm_find_md 2005-11-18 18:16:05.000000000 -0800 +++ devel-akpm/drivers/md/dm.c 2005-11-18 18:16:05.000000000 -0800 @@ -913,10 +913,9 @@ int dm_create_with_minor(unsigned int mi 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)) @@ -925,12 +924,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; } _