Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit fe6e9c1f authored by Al Viro's avatar Al Viro
Browse files

[PATCH] fix cgroup-inflicted breakage in block_dev.c



devcgroup_inode_permission() expects MAY_FOO, not FMODE_FOO; kindly
keep your misdesign consistent if you positively have to inflict it
on the kernel.

Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
parent 481c5346
Loading
Loading
Loading
Loading
+9 −1
Original line number Diff line number Diff line
@@ -931,8 +931,16 @@ static int do_open(struct block_device *bdev, struct file *file, int for_part)
	struct gendisk *disk;
	int ret;
	int part;
	int perm = 0;

	ret = devcgroup_inode_permission(bdev->bd_inode, file->f_mode);
	if (file->f_mode & FMODE_READ)
		perm |= MAY_READ;
	if (file->f_mode & FMODE_WRITE)
		perm |= MAY_WRITE;
	/*
	 * hooks: /n/, see "layering violations".
	 */
	ret = devcgroup_inode_permission(bdev->bd_inode, perm);
	if (ret != 0)
		return ret;