block: NULL dereference on error path in __blkdev_get()
authorDan Carpenter <error27@gmail.com>
Sat, 19 Mar 2011 12:53:31 +0000 (13:53 +0100)
committerJens Axboe <axboe@carl>
Sat, 19 Mar 2011 12:53:31 +0000 (13:53 +0100)
"disk" is always NULL when we goto out.  There was a check for this
before, but it was removed in 69e02c59a7d9 "block: Don't check events
while open is in progress".

Signed-off-by: Dan Carpenter <error27@gmail.com>
Acked-by: Tejun Heo <tj@kernel.org>
Signed-off-by: Jens Axboe <axboe@carl>
fs/block_dev.c

index fbe05cbdd692f41d7cc636dbe86594117f565781..7d02afb2b7f4b5f404277936d52ab7f1cb885215 100644 (file)
@@ -1181,9 +1181,9 @@ static int __blkdev_get(struct block_device *bdev, fmode_t mode, int for_part)
  out_unlock_bdev:
        mutex_unlock(&bdev->bd_mutex);
        disk_unblock_events(disk);
- out:
        module_put(disk->fops->owner);
        put_disk(disk);
+ out:
        bdput(bdev);
 
        return ret;