On Thu 26-11-20 14:04:00, Christoph Hellwig wrote: > Just call devcgroup_check_permission to avoid various superflous checks > and a double conversion of the access flags. > > Signed-off-by: Christoph Hellwig <hch@xxxxxx> > Acked-by: Tejun Heo <tj@xxxxxxxxxx> Looks good. You can add: Reviewed-by: Jan Kara <jack@xxxxxxx> Honza > --- > 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 > -- Jan Kara <jack@xxxxxxxx> SUSE Labs, CR