From: Dan Williams Date: Tue, 20 Jan 2009 07:29:34 +0000 (-0700) Subject: imsm: fix dev_open return value handling X-Git-Tag: mdadm-3.0-devel3~53 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=be2c0e387b88c801a5b5f07d7f447a4dba97100e;p=thirdparty%2Fmdadm.git imsm: fix dev_open return value handling dev_open returns an fd Signed-off-by: Dan Williams --- diff --git a/super-intel.c b/super-intel.c index 94f46cac..4eaca9d6 100644 --- a/super-intel.c +++ b/super-intel.c @@ -1915,7 +1915,7 @@ static int load_super_imsm_all(struct supertype *st, int fd, void **sbp, for (sd = sra->devs; sd; sd = sd->next) { sprintf(nm, "%d:%d", sd->disk.major, sd->disk.minor); dfd = dev_open(nm, keep_fd ? O_RDWR : O_RDONLY); - if (!dfd) { + if (dfd < 0) { free_imsm(super); return 2; } @@ -1945,7 +1945,7 @@ static int load_super_imsm_all(struct supertype *st, int fd, void **sbp, /* load the most up to date anchor */ sprintf(nm, "%d:%d", best->disk.major, best->disk.minor); dfd = dev_open(nm, O_RDONLY); - if (!dfd) { + if (dfd < 0) { free_imsm(super); return 1; } @@ -1960,7 +1960,7 @@ static int load_super_imsm_all(struct supertype *st, int fd, void **sbp, for (sd = sra->devs ; sd ; sd = sd->next) { sprintf(nm, "%d:%d", sd->disk.major, sd->disk.minor); dfd = dev_open(nm, keep_fd? O_RDWR : O_RDONLY); - if (!dfd) { + if (dfd < 0) { free_imsm(super); return 2; }