summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/md/dm.c10
-rw-r--r--drivers/md/dm.h1
2 files changed, 11 insertions, 0 deletions
diff --git a/drivers/md/dm.c b/drivers/md/dm.c
index 27cd234cf68..9e8c1edd89d 100644
--- a/drivers/md/dm.c
+++ b/drivers/md/dm.c
@@ -921,6 +921,16 @@ static struct mapped_device *dm_find_md(dev_t dev)
return md;
}
+struct mapped_device *dm_get_md(dev_t dev)
+{
+ struct mapped_device *md = dm_find_md(dev);
+
+ if (md)
+ dm_get(md);
+
+ return md;
+}
+
void *dm_get_mdptr(dev_t dev)
{
struct mapped_device *md;
diff --git a/drivers/md/dm.h b/drivers/md/dm.h
index e38c3fc1a1d..ab078a24939 100644
--- a/drivers/md/dm.h
+++ b/drivers/md/dm.h
@@ -58,6 +58,7 @@ int dm_create(struct mapped_device **md);
int dm_create_with_minor(unsigned int minor, struct mapped_device **md);
void dm_set_mdptr(struct mapped_device *md, void *ptr);
void *dm_get_mdptr(dev_t dev);
+struct mapped_device *dm_get_md(dev_t dev);
/*
* Reference counting for md.