Just call devcgroup_check_permission to avoid various superflous checks and a double conversion of the access flags.
Signed-off-by: Christoph Hellwig <h...@lst.de> Acked-by: Tejun Heo <t...@kernel.org> --- fs/block_dev.c | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/fs/block_dev.c b/fs/block_dev.c index d0783c55a0ce65..b12ab68297baf3 100644 --- a/fs/block_dev.c +++ b/fs/block_dev.c @@ -1516,15 +1516,13 @@ static int blkdev_get(struct block_device *bdev, fmode_t mode, void *holder) struct block_device *claiming; bool unblock_events = true; struct gendisk *disk; - int perm = 0; int partno; int ret; - if (mode & FMODE_READ) - perm |= MAY_READ; - if (mode & FMODE_WRITE) - perm |= MAY_WRITE; - ret = devcgroup_inode_permission(bdev->bd_inode, perm); + ret = devcgroup_check_permission(DEVCG_DEV_BLOCK, + imajor(bdev->bd_inode), iminor(bdev->bd_inode), + ((mode & FMODE_READ) ? DEVCG_ACC_READ : 0) | + ((mode & FMODE_WRITE) ? DEVCG_ACC_WRITE : 0)); if (ret) goto bdput; -- 2.29.2 -- dm-devel mailing list dm-devel@redhat.com https://www.redhat.com/mailman/listinfo/dm-devel