2017-03-30 16:58:24

by Gi-Oh Kim

[permalink] [raw]
Subject: [PATCHv2] mdadm.c: fix compile error "switch condition has boolean value"

Remove a boolean expression in switch condition
to prevent compile error of some compilers,
for example, gcc version 5.2.1 20151010 (Ubuntu 5.2.1-22ubuntu2).

Signed-off-by: Gioh Kim <[email protected]>
---
mdadm.c | 14 ++++++--------
1 file changed, 6 insertions(+), 8 deletions(-)

diff --git a/mdadm.c b/mdadm.c
index 0f32773..d6b5437 100644
--- a/mdadm.c
+++ b/mdadm.c
@@ -1965,14 +1965,12 @@ static int misc_list(struct mddev_dev *devlist,
rv |= SetAction(dv->devname, c->action);
continue;
}
- switch(dv->devname[0] == '/') {
- case 0:
- mdfd = open_dev(dv->devname);
- if (mdfd >= 0)
- break;
- case 1:
- mdfd = open_mddev(dv->devname, 1);
- }
+
+ if (dv->devname[0] != '/')
+ mdfd = open_dev(dv->devname);
+ if (dv->devname[0] == '/' || mdfd < 0)
+ mdfd = open_mddev(dv->devname, 1);
+
if (mdfd >= 0) {
switch(dv->disposition) {
case 'R':
--
2.5.0


2017-03-30 17:50:50

by Wols Lists

[permalink] [raw]
Subject: Re: [PATCHv2] mdadm.c: fix compile error "switch condition has boolean value"

You can add my acked-by (never done it before, not sure how :-)

Cheers,
Wol

On 30/03/17 17:58, Gioh Kim wrote:
> Remove a boolean expression in switch condition
> to prevent compile error of some compilers,
> for example, gcc version 5.2.1 20151010 (Ubuntu 5.2.1-22ubuntu2).
>
> Signed-off-by: Gioh Kim <[email protected]>
> ---
> mdadm.c | 14 ++++++--------
> 1 file changed, 6 insertions(+), 8 deletions(-)
>
> diff --git a/mdadm.c b/mdadm.c
> index 0f32773..d6b5437 100644
> --- a/mdadm.c
> +++ b/mdadm.c
> @@ -1965,14 +1965,12 @@ static int misc_list(struct mddev_dev *devlist,
> rv |= SetAction(dv->devname, c->action);
> continue;
> }
> - switch(dv->devname[0] == '/') {
> - case 0:
> - mdfd = open_dev(dv->devname);
> - if (mdfd >= 0)
> - break;
> - case 1:
> - mdfd = open_mddev(dv->devname, 1);
> - }
> +
> + if (dv->devname[0] != '/')
> + mdfd = open_dev(dv->devname);
> + if (dv->devname[0] == '/' || mdfd < 0)
> + mdfd = open_mddev(dv->devname, 1);
> +
> if (mdfd >= 0) {
> switch(dv->disposition) {
> case 'R':
>

2017-03-30 17:51:32

by Jes Sorensen

[permalink] [raw]
Subject: Re: [PATCHv2] mdadm.c: fix compile error "switch condition has boolean value"

On 03/30/2017 12:58 PM, Gioh Kim wrote:
> Remove a boolean expression in switch condition
> to prevent compile error of some compilers,
> for example, gcc version 5.2.1 20151010 (Ubuntu 5.2.1-22ubuntu2).
>
> Signed-off-by: Gioh Kim <[email protected]>
> ---
> mdadm.c | 14 ++++++--------
> 1 file changed, 6 insertions(+), 8 deletions(-)

Applied!

Thanks,
Jes

> diff --git a/mdadm.c b/mdadm.c
> index 0f32773..d6b5437 100644
> --- a/mdadm.c
> +++ b/mdadm.c
> @@ -1965,14 +1965,12 @@ static int misc_list(struct mddev_dev *devlist,
> rv |= SetAction(dv->devname, c->action);
> continue;
> }
> - switch(dv->devname[0] == '/') {
> - case 0:
> - mdfd = open_dev(dv->devname);
> - if (mdfd >= 0)
> - break;
> - case 1:
> - mdfd = open_mddev(dv->devname, 1);
> - }
> +
> + if (dv->devname[0] != '/')
> + mdfd = open_dev(dv->devname);
> + if (dv->devname[0] == '/' || mdfd < 0)
> + mdfd = open_mddev(dv->devname, 1);
> +
> if (mdfd >= 0) {
> switch(dv->disposition) {
> case 'R':
>