From d7eaf49f65ecb99e24255026331b0af7a9245cc2 Mon Sep 17 00:00:00 2001 From: Neil Brown Date: Mon, 4 Apr 2005 06:02:49 +0000 Subject: 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 --- Create.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'Create.c') diff --git a/Create.c b/Create.c index 1c814f7..66a88d2 100644 --- a/Create.c +++ b/Create.c @@ -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); -- cgit