summaryrefslogtreecommitdiffstats
path: root/drivers/md/dm.c
diff options
context:
space:
mode:
authorMike Snitzer <snitzer@redhat.com>2017-11-06 22:40:10 +0100
committerMike Snitzer <snitzer@redhat.com>2017-11-10 21:44:57 +0100
commit49de5769702cdf997e87359ba4e9ae289c1044e0 (patch)
tree20f07a1306a18bafb27ec780ff28a3aac8190cbe /drivers/md/dm.c
parentdm: fix race between dm_get_from_kobject() and __dm_destroy() (diff)
downloadlinux-49de5769702cdf997e87359ba4e9ae289c1044e0.tar.xz
linux-49de5769702cdf997e87359ba4e9ae289c1044e0.zip
dm: small cleanup in dm_get_md()
Makes dm_get_md() and dm_get_from_kobject() have similar code. Signed-off-by: Mike Snitzer <snitzer@redhat.com>
Diffstat (limited to '')
-rw-r--r--drivers/md/dm.c15
1 files changed, 5 insertions, 10 deletions
diff --git a/drivers/md/dm.c b/drivers/md/dm.c
index dcfa1a8c9390..567b9ed1056d 100644
--- a/drivers/md/dm.c
+++ b/drivers/md/dm.c
@@ -2074,17 +2074,12 @@ struct mapped_device *dm_get_md(dev_t dev)
spin_lock(&_minor_lock);
md = idr_find(&_minor_idr, minor);
- if (md) {
- if ((md == MINOR_ALLOCED ||
- (MINOR(disk_devt(dm_disk(md))) != minor) ||
- dm_deleting_md(md) ||
- test_bit(DMF_FREEING, &md->flags))) {
- md = NULL;
- goto out;
- }
- dm_get(md);
+ if (!md || md == MINOR_ALLOCED || (MINOR(disk_devt(dm_disk(md))) != minor) ||
+ test_bit(DMF_FREEING, &md->flags) || dm_deleting_md(md)) {
+ md = NULL;
+ goto out;
}
-
+ dm_get(md);
out:
spin_unlock(&_minor_lock);