diff options
author | Yuanhan Liu <yuanhan.liu@linux.intel.com> | 2012-05-22 13:55:32 +1000 |
---|---|---|
committer | NeilBrown <neilb@suse.de> | 2012-05-22 13:55:32 +1000 |
commit | 0c098220e2320c1f0c9339d0ff05c5e04672133a (patch) | |
tree | 5dfe163da6707f93b5bbc77ccb0ec4ee98227591 | |
parent | 4f0a5e012cf41321d611e7cad63e1017d143d138 (diff) |
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>
-rw-r--r-- | drivers/md/md.c | 3 |
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. |