creat.c.patch   [plain text]


--- creat.c.orig	2006-09-16 19:12:44.000000000 -0700
+++ creat.c	2006-09-17 00:17:18.000000000 -0700
@@ -37,14 +37,26 @@
 #include <sys/cdefs.h>
 __FBSDID("$FreeBSD: src/lib/libc/compat-43/creat.c,v 1.7 2002/03/22 21:51:56 obrien Exp $");
 
+
 #include "namespace.h"
 #include <fcntl.h>
 #include "un-namespace.h"
 
+#ifdef VARIANT_CANCELABLE
+int __open(const char *path, int flags, mode_t mode);
+#else /* !VARIANT_CANCELABLE */
+int __open_nocancel(const char *path, int flags, mode_t mode);
+#endif /* VARIANT_CANCELABLE */
+
+
 int
 __creat(const char *path, mode_t mode)
 {
-	return(_open(path, O_WRONLY|O_CREAT|O_TRUNC, mode));
+#ifdef VARIANT_CANCELABLE
+	return(__open(path, O_WRONLY|O_CREAT|O_TRUNC, mode));
+#else /* !VARIANT_CANCELABLE */
+	return(__open_nocancel(path, O_WRONLY|O_CREAT|O_TRUNC, mode));
+#endif /* VARIANT_CANCELABLE */
 }
 __weak_reference(__creat, creat);
 __weak_reference(__creat, _creat);