Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

block: opencode devcgroup_inode_permission

Just call devcgroup_check_permission to avoid various superflous checks
and a double conversion of the access flags.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Acked-by: Tejun Heo <tj@kernel.org>
Reviewed-by: Jan Kara <jack@suse.cz>
Reviewed-by: Hannes Reinecke <hare@suse.de>
Signed-off-by: Jens Axboe <axboe@kernel.dk>

authored by

Christoph Hellwig and committed by
Jens Axboe
7918f0f6 63d9932c

+4 -6
+4 -6
fs/block_dev.c
··· 1520 1520 struct block_device *claiming; 1521 1521 bool unblock_events = true; 1522 1522 struct gendisk *disk; 1523 - int perm = 0; 1524 1523 int partno; 1525 1524 int ret; 1526 1525 1527 - if (mode & FMODE_READ) 1528 - perm |= MAY_READ; 1529 - if (mode & FMODE_WRITE) 1530 - perm |= MAY_WRITE; 1531 - ret = devcgroup_inode_permission(bdev->bd_inode, perm); 1526 + ret = devcgroup_check_permission(DEVCG_DEV_BLOCK, 1527 + imajor(bdev->bd_inode), iminor(bdev->bd_inode), 1528 + ((mode & FMODE_READ) ? DEVCG_ACC_READ : 0) | 1529 + ((mode & FMODE_WRITE) ? DEVCG_ACC_WRITE : 0)); 1532 1530 if (ret) 1533 1531 goto bdput; 1534 1532