summaryrefslogtreecommitdiffstats
path: root/drivers/md
diff options
context:
space:
mode:
authorYuanhan Liu2012-05-22 05:55:32 +0200
committerNeilBrown2012-05-22 05:55:32 +0200
commit0c098220e2320c1f0c9339d0ff05c5e04672133a (patch)
tree5dfe163da6707f93b5bbc77ccb0ec4ee98227591 /drivers/md
parentMD RAID1: Further conditionalize 'fullsync' (diff)
downloadkernel-qcow2-linux-0c098220e2320c1f0c9339d0ff05c5e04672133a.tar.gz
kernel-qcow2-linux-0c098220e2320c1f0c9339d0ff05c5e04672133a.tar.xz
kernel-qcow2-linux-0c098220e2320c1f0c9339d0ff05c5e04672133a.zip
md: check the return of mddev_find()
Check the return of mddev_find(), since it may fail due to out of memeory or out of usable minor number. The reason I chose -ENODEV instead of -ENOMEM or something else is md_alloc() function chose that ;) Signed-off-by: Yuanhan Liu <yuanhan.liu@linux.intel.com> Signed-off-by: NeilBrown <neilb@suse.de>
Diffstat (limited to 'drivers/md')
-rw-r--r--drivers/md/md.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/md/md.c b/drivers/md/md.c
index 4c9836885d3e..1c2f9048e1ae 100644
--- a/drivers/md/md.c
+++ b/drivers/md/md.c
@@ -6618,6 +6618,9 @@ static int md_open(struct block_device *bdev, fmode_t mode)
struct mddev *mddev = mddev_find(bdev->bd_dev);
int err;
+ if (!mddev)
+ return -ENODEV;
+
if (mddev->gendisk != bdev->bd_disk) {
/* we are racing with mddev_put which is discarding this
* bd_disk.