Message ID | 20201128161510.347752-24-hch@lst.de (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [01/45] blk-cgroup: fix a hd_struct leak in blkcg_fill_root_iostats | expand |
On 11/28/20 5:14 PM, 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@lst.de> > Acked-by: Tejun Heo <tj@kernel.org> > Reviewed-by: Jan Kara <jack@suse.cz> > --- > fs/block_dev.c | 10 ++++------ > 1 file changed, 4 insertions(+), 6 deletions(-) > Reviewed-by: Hannes Reinecke <hare@suse.de> Cheers, Hannes
diff --git a/fs/block_dev.c b/fs/block_dev.c index a2d5050c97ee08..2b8c0586314fe2 100644 --- a/fs/block_dev.c +++ b/fs/block_dev.c @@ -1520,15 +1520,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;