summaryrefslogtreecommitdiff
path: root/libstore/device.c
diff options
context:
space:
mode:
authorMiles Bader <miles@gnu.org>1996-08-21 18:40:46 +0000
committerMiles Bader <miles@gnu.org>1996-08-21 18:40:46 +0000
commitb704b46ab017f8e48ec9c79f0db4b028553ebec9 (patch)
tree2f540281dfa73ce756ab096d6b3fc4c547d10a26 /libstore/device.c
parent4558e1c8a47dd8e11aa726ca1e1884f6f715a82d (diff)
(store_device_open): Don't call store_device_create if device_open fails.
Diffstat (limited to 'libstore/device.c')
-rw-r--r--libstore/device.c11
1 files changed, 6 insertions, 5 deletions
diff --git a/libstore/device.c b/libstore/device.c
index 9036699f..c1cfd83e 100644
--- a/libstore/device.c
+++ b/libstore/device.c
@@ -117,12 +117,13 @@ store_device_open (const char *name, int flags, struct store **store)
return err;
err = device_open (dev_master, open_flags, (char *)name, &device);
-
mach_port_deallocate (mach_task_self (), dev_master);
-
- err = store_device_create (device, flags, store);
- if (err)
- mach_port_deallocate (mach_task_self (), device);
+ if (! err)
+ {
+ err = store_device_create (device, flags, store);
+ if (err)
+ mach_port_deallocate (mach_task_self (), device);
+ }
return err;
}