Re: [PATCH v5 1/8] md: merge the check of capabilities into md_ioctl_valid()

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



在 2024/02/01 14:33, linan666@xxxxxxxxxxxxxxx 写道:
From: Li Nan <linan122@xxxxxxxxxx>

There is no functional change. Just to make code cleaner.

Signed-off-by: Li Nan <linan122@xxxxxxxxxx>

LGTM
Reviewed-by: Yu Kuai <yukuai3@xxxxxxxxxx>

---
  drivers/md/md.c | 30 ++++++++++++------------------
  1 file changed, 12 insertions(+), 18 deletions(-)

diff --git a/drivers/md/md.c b/drivers/md/md.c
index e351e6c51cc7..1b509fb82040 100644
--- a/drivers/md/md.c
+++ b/drivers/md/md.c
@@ -7545,16 +7545,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:
@@ -7563,9 +7564,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;
  	}
  }
@@ -7625,18 +7628,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






[Index of Archives]     [Linux RAID Wiki]     [ATA RAID]     [Linux SCSI Target Infrastructure]     [Linux Block]     [Linux IDE]     [Linux SCSI]     [Linux Hams]     [Device Mapper]     [Device Mapper Cryptographics]     [Kernel]     [Linux Admin]     [Linux Net]     [GFS]     [RPM]     [git]     [Yosemite Forum]


  Powered by Linux