mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-02-23 21:11:51 -05:00
md: merge the check of capabilities into md_ioctl_valid()
There is no functional change. Just to make code cleaner. Signed-off-by: Li Nan <linan122@huawei.com> Reviewed-by: Yu Kuai <yukuai3@huawei.com> Signed-off-by: Song Liu <song@kernel.org> Link: https://lore.kernel.org/r/20240226031444.3606764-2-linan666@huaweicloud.com
This commit is contained in:
@@ -7522,16 +7522,17 @@ static int md_getgeo(struct block_device *bdev, struct hd_geometry *geo)
|
||||
return 0;
|
||||
}
|
||||
|
||||
static inline bool md_ioctl_valid(unsigned int cmd)
|
||||
static inline int md_ioctl_valid(unsigned int cmd)
|
||||
{
|
||||
switch (cmd) {
|
||||
case ADD_NEW_DISK:
|
||||
case GET_ARRAY_INFO:
|
||||
case GET_BITMAP_FILE:
|
||||
case GET_DISK_INFO:
|
||||
case RAID_VERSION:
|
||||
return 0;
|
||||
case ADD_NEW_DISK:
|
||||
case GET_BITMAP_FILE:
|
||||
case HOT_ADD_DISK:
|
||||
case HOT_REMOVE_DISK:
|
||||
case RAID_VERSION:
|
||||
case RESTART_ARRAY_RW:
|
||||
case RUN_ARRAY:
|
||||
case SET_ARRAY_INFO:
|
||||
@@ -7540,9 +7541,11 @@ static inline bool md_ioctl_valid(unsigned int cmd)
|
||||
case STOP_ARRAY:
|
||||
case STOP_ARRAY_RO:
|
||||
case CLUSTERED_DISK_NACK:
|
||||
return true;
|
||||
if (!capable(CAP_SYS_ADMIN))
|
||||
return -EACCES;
|
||||
return 0;
|
||||
default:
|
||||
return false;
|
||||
return -ENOTTY;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -7602,18 +7605,9 @@ static int md_ioctl(struct block_device *bdev, blk_mode_t mode,
|
||||
struct mddev *mddev = NULL;
|
||||
bool did_set_md_closing = false;
|
||||
|
||||
if (!md_ioctl_valid(cmd))
|
||||
return -ENOTTY;
|
||||
|
||||
switch (cmd) {
|
||||
case RAID_VERSION:
|
||||
case GET_ARRAY_INFO:
|
||||
case GET_DISK_INFO:
|
||||
break;
|
||||
default:
|
||||
if (!capable(CAP_SYS_ADMIN))
|
||||
return -EACCES;
|
||||
}
|
||||
err = md_ioctl_valid(cmd);
|
||||
if (err)
|
||||
return err;
|
||||
|
||||
/*
|
||||
* Commands dealing with the RAID driver but not any
|
||||
|
||||
Reference in New Issue
Block a user