Commit e5c7fb40 authored by Christoph Hellwig's avatar Christoph Hellwig Committed by Jens Axboe

block: move the devcgroup_inode_permission call to blkdev_get

devcgroup_inode_permission is never called for the recusive case, so
move it out into blkdev_get.
Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
parent 46d40cfa
...@@ -1449,22 +1449,8 @@ static int __blkdev_get(struct block_device *bdev, fmode_t mode, void *holder, ...@@ -1449,22 +1449,8 @@ static int __blkdev_get(struct block_device *bdev, fmode_t mode, void *holder,
struct gendisk *disk; struct gendisk *disk;
int ret; int ret;
int partno; int partno;
int perm = 0;
bool first_open = false, unblock_events = true, need_restart; bool first_open = false, unblock_events = true, need_restart;
if (mode & FMODE_READ)
perm |= MAY_READ;
if (mode & FMODE_WRITE)
perm |= MAY_WRITE;
/*
* hooks: /n/, see "layering violations".
*/
if (!for_part) {
ret = devcgroup_inode_permission(bdev->bd_inode, perm);
if (ret != 0)
return ret;
}
restart: restart:
need_restart = false; need_restart = false;
ret = -ENXIO; ret = -ENXIO;
...@@ -1637,12 +1623,24 @@ static int __blkdev_get(struct block_device *bdev, fmode_t mode, void *holder, ...@@ -1637,12 +1623,24 @@ static int __blkdev_get(struct block_device *bdev, fmode_t mode, void *holder,
*/ */
int blkdev_get(struct block_device *bdev, fmode_t mode, void *holder) int blkdev_get(struct block_device *bdev, fmode_t mode, void *holder)
{ {
int res; int ret, perm = 0;
res =__blkdev_get(bdev, mode, holder, 0); if (mode & FMODE_READ)
if (res) perm |= MAY_READ;
bdput(bdev); if (mode & FMODE_WRITE)
return res; perm |= MAY_WRITE;
ret = devcgroup_inode_permission(bdev->bd_inode, perm);
if (ret)
goto bdput;
ret =__blkdev_get(bdev, mode, holder, 0);
if (ret)
goto bdput;
return 0;
bdput:
bdput(bdev);
return ret;
} }
EXPORT_SYMBOL(blkdev_get); EXPORT_SYMBOL(blkdev_get);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment