[Libguestfs] [PATCH] Fix broken qemu <= 0.10 which randomly adds a CD-ROM device to the appliance
Jim Meyering
jim at meyering.net
Wed Jul 29 20:28:22 UTC 2009
Richard W.M. Jones wrote:
>>From 6bb26f2d253b77570c2b9291021db4364597b6df Mon Sep 17 00:00:00 2001
> From: Richard Jones <rjones at centos5x32.home.annexia.org>
> Date: Wed, 29 Jul 2009 15:02:16 +0100
> Subject: [PATCH] Don't show empty CD devices (RHBZ#514505).
>
> ---
> daemon/devsparts.c | 27 +++++++++++++++++++++++++++
> 1 files changed, 27 insertions(+), 0 deletions(-)
>
> diff --git a/daemon/devsparts.c b/daemon/devsparts.c
> index 32d2fa8..a198ccd 100644
> --- a/daemon/devsparts.c
> +++ b/daemon/devsparts.c
> @@ -37,6 +37,7 @@ do_list_devices (void)
> DIR *dir;
> struct dirent *d;
> char buf[256];
> + int fd;
>
> dir = opendir ("/sys/block");
> if (!dir) {
> @@ -49,6 +50,18 @@ do_list_devices (void)
> strncmp (d->d_name, "hd", 2) == 0 ||
> strncmp (d->d_name, "vd", 2) == 0) {
> snprintf (buf, sizeof buf, "/dev/%s", d->d_name);
> +
> + /* RHBZ#514505: Some versions of qemu <= 0.10 device to add a
> + * CD-ROM device even though we didn't request it. Try to
> + * detect this by seeing if the device contains media.
> + */
> + fd = open (buf, O_RDONLY);
This all looks fine. (modulo s/device to // in the comment)
However, imho it would be slightly better
(easier to read/review) if "fd" were declared at least
in the inner scope where it is used.
Personally, I'd go all the way and do this:
int fd = open (buf, O_RDONLY);
assuming you're ok with c99 decl-after-stmt.
Hoping I'm not being too presumptuous, here's a patch:
>From aed1ab4721ab4b60081f539bd0023f64616ccd7e Mon Sep 17 00:00:00 2001
From: Jim Meyering <meyering at redhat.com>
Date: Wed, 29 Jul 2009 14:48:45 -0400
Subject: [PATCH] fix comments; move declarations
* daemon/devsparts.c (do_list_devices, do_list_partitions):
Remove stray words in comments.
Move declarations down to definition.
---
daemon/devsparts.c | 10 ++++------
1 files changed, 4 insertions(+), 6 deletions(-)
diff --git a/daemon/devsparts.c b/daemon/devsparts.c
index a198ccd..33579ba 100644
--- a/daemon/devsparts.c
+++ b/daemon/devsparts.c
@@ -37,7 +37,6 @@ do_list_devices (void)
DIR *dir;
struct dirent *d;
char buf[256];
- int fd;
dir = opendir ("/sys/block");
if (!dir) {
@@ -51,11 +50,11 @@ do_list_devices (void)
strncmp (d->d_name, "vd", 2) == 0) {
snprintf (buf, sizeof buf, "/dev/%s", d->d_name);
- /* RHBZ#514505: Some versions of qemu <= 0.10 device to add a
+ /* RHBZ#514505: Some versions of qemu <= 0.10 add a
* CD-ROM device even though we didn't request it. Try to
* detect this by seeing if the device contains media.
*/
- fd = open (buf, O_RDONLY);
+ int fd = open (buf, O_RDONLY);
if (fd == -1) {
perror (buf);
continue;
@@ -92,7 +91,6 @@ do_list_partitions (void)
DIR *dir, *dir2;
struct dirent *d;
char buf[256], devname[256];
- int fd;
dir = opendir ("/sys/block");
if (!dir) {
@@ -106,11 +104,11 @@ do_list_partitions (void)
strncmp (d->d_name, "vd", 2) == 0) {
snprintf (buf, sizeof buf, "/dev/%s", d->d_name);
- /* RHBZ#514505: Some versions of qemu <= 0.10 device to add a
+ /* RHBZ#514505: Some versions of qemu <= 0.10 add a
* CD-ROM device even though we didn't request it. Try to
* detect this by seeing if the device contains media.
*/
- fd = open (buf, O_RDONLY);
+ int fd = open (buf, O_RDONLY);
if (fd == -1) {
perror (buf);
continue;
--
1.6.3.3
More information about the Libguestfs
mailing list