diff options
author | Neil Brown <neilb@suse.de> | 2005-04-04 06:02:49 +0000 |
---|---|---|
committer | Neil Brown <neilb@suse.de> | 2005-04-04 06:02:49 +0000 |
commit | d7eaf49f65ecb99e24255026331b0af7a9245cc2 (patch) | |
tree | 1a360f741fc0698f0d766a386eab68ee3b94ee65 /Create.c | |
parent | b568741513da4cc6284815345473f67f7cdee1df (diff) | |
download | mdadm-d7eaf49f65ecb99e24255026331b0af7a9245cc2.tar.gz mdadm-d7eaf49f65ecb99e24255026331b0af7a9245cc2.tar.xz mdadm-d7eaf49f65ecb99e24255026331b0af7a9245cc2.zip |
Use O_EXCL when opening component devices to be assembled into an array
In 2.6, this will fail if the device is already in use, so we can detect this error
more easily.
Signed-off-by: Neil Brown <neilb@cse.unsw.edu.au>
Diffstat (limited to 'Create.c')
-rw-r--r-- | Create.c | 4 |
1 files changed, 2 insertions, 2 deletions
@@ -187,7 +187,7 @@ int Create(char *mddev, int mdfd, array.working_disks++; if (dnum < raiddisks) array.active_disks++; - fd = open(dname, O_RDONLY, 0); + fd = open(dname, O_RDONLY|O_EXCL, 0); if (fd <0 ) { fprintf(stderr, Name ": Cannot open %s: %s\n", dname, strerror(errno)); @@ -368,7 +368,7 @@ int Create(char *mddev, int mdfd, disk.minor = 0; disk.state = 1; /* faulty */ } else { - fd = open(dv->devname, O_RDONLY, 0); + fd = open(dv->devname, O_RDONLY|O_EXCL, 0); if (fd < 0) { fprintf(stderr, Name ": failed to open %s after earlier success - aborting\n", dv->devname); |