Commit 82666020 authored by Al Viro's avatar Al Viro

[PATCH] fix bdev leak in block_dev.c do_open()

Callers expect it to drop reference to bdev on all failure exits.
Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
parent 77e69dac
...@@ -941,8 +941,10 @@ static int do_open(struct block_device *bdev, struct file *file, int for_part) ...@@ -941,8 +941,10 @@ static int do_open(struct block_device *bdev, struct file *file, int for_part)
* hooks: /n/, see "layering violations". * hooks: /n/, see "layering violations".
*/ */
ret = devcgroup_inode_permission(bdev->bd_inode, perm); ret = devcgroup_inode_permission(bdev->bd_inode, perm);
if (ret != 0) if (ret != 0) {
bdput(bdev);
return ret; return ret;
}
ret = -ENXIO; ret = -ENXIO;
file->f_mapping = bdev->bd_inode->i_mapping; file->f_mapping = bdev->bd_inode->i_mapping;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment