summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNeil Brown <neilb@suse.de>2005-04-11 00:20:03 +0000
committerNeil Brown <neilb@suse.de>2005-04-11 00:20:03 +0000
commit0fbf459d0d3c8cb0b050468c27f8e6bcc0db5d7d (patch)
tree18f2eac36a69bb0a65a0799b2a5755f4e8973544
parent75aa592c2bd60c250e8781d42972f85c13febd0b (diff)
downloadmdadm-0fbf459d0d3c8cb0b050468c27f8e6bcc0db5d7d.tar.gz
mdadm-0fbf459d0d3c8cb0b050468c27f8e6bcc0db5d7d.tar.xz
mdadm-0fbf459d0d3c8cb0b050468c27f8e6bcc0db5d7d.zip
Fix embarassing bug in 1.10.0 which broke --add
Use a different variable to old result of open Signed-off-by: Neil Brown <neilb@cse.unsw.edu.au>
-rw-r--r--ChangeLog3
-rw-r--r--Manage.c7
2 files changed, 7 insertions, 3 deletions
diff --git a/ChangeLog b/ChangeLog
index 33e729b..1c8a10d 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,6 @@
+Changes Prior to this release
+ - Fix embarassing bug which causes --add to always fail.
+
Changes Prior to 1.10.0 release
- Fix bug with --config=partitions
- Open sub-devices with O_EXCL to detect if already in use
diff --git a/Manage.c b/Manage.c
index b323fd3..c1debfa 100644
--- a/Manage.c
+++ b/Manage.c
@@ -168,6 +168,7 @@ int Manage_subdevs(char *devname, int fd,
mddev_dev_t dv;
struct stat stb;
int j;
+ int tfd;
int save_errno;
static char buf[4096];
@@ -195,13 +196,13 @@ int Manage_subdevs(char *devname, int fd,
case 'a':
/* add the device - hot or cold */
/* Make sure it isn' in use (in 2.6 or later) */
- fd = open(dv->devname, O_RDONLY|O_EXCL);
- if (fd < 0) {
+ tfd = open(dv->devname, O_RDONLY|O_EXCL);
+ if (tfd < 0) {
fprintf(stderr, Name ": Cannot open %s: %s\n",
dv->devname, strerror(errno));
return 1;
}
- close(fd);
+ close(tfd);
if (ioctl(fd, HOT_ADD_DISK, (unsigned long)stb.st_rdev)==0) {
fprintf(stderr, Name ": hot added %s\n",
dv->devname);