[PATCH] cdrom: do not print info list when there is no cdrom device

From: Enze Li
Date: Fri Apr 08 2022 - 04:42:49 EST


There is no need to print a list of cdrom entries with blank info when
no cdrom device exists. With this patch applied, we get:

================================================
$ cat /proc/sys/dev/cdrom/info
CD-ROM information, Id:cdrom.c 3.20 2003/12/17

No device found.

================================================

BTW, I also formatted the argument list of the cdrom_sysctl_info
function, using tabs instead of spaces.

Signed-off-by: Enze Li <lienze@xxxxxxxxxx>
---
drivers/cdrom/cdrom.c | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/drivers/cdrom/cdrom.c b/drivers/cdrom/cdrom.c
index 7bd10d63ddbe..33a51303f565 100644
--- a/drivers/cdrom/cdrom.c
+++ b/drivers/cdrom/cdrom.c
@@ -3507,7 +3507,7 @@ static int cdrom_print_info(const char *header, int val, char *info,
}

static int cdrom_sysctl_info(struct ctl_table *ctl, int write,
- void *buffer, size_t *lenp, loff_t *ppos)
+ void *buffer, size_t *lenp, loff_t *ppos)
{
int pos;
char *info = cdrom_sysctl_settings.info;
@@ -3522,6 +3522,11 @@ static int cdrom_sysctl_info(struct ctl_table *ctl, int write,

pos = sprintf(info, "CD-ROM information, " VERSION "\n");

+ if (list_empty(&cdrom_list)) {
+ scnprintf(info + pos, max_size - pos, "\nNo device found.\n");
+ goto doit;
+ }
+
if (cdrom_print_info("\ndrive name:\t", 0, info, &pos, CTL_NAME))
goto done;
if (cdrom_print_info("\ndrive speed:\t", 0, info, &pos, CTL_SPEED))
--
2.25.1