summaryrefslogtreecommitdiffstats
path: root/src/lib9/create.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib9/create.c')
-rw-r--r--src/lib9/create.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/lib9/create.c b/src/lib9/create.c
index 97f6e7e2..eaea479c 100644
--- a/src/lib9/create.c
+++ b/src/lib9/create.c
@@ -1,3 +1,4 @@
+#define _GNU_SOURCE /* for Linux O_DIRECT */
#include <u.h>
#define NOPLAN9DEFINES
#include <libc.h>
@@ -25,6 +26,10 @@ p9create(char *path, int mode, ulong perm)
}else{
umode = (mode&3)|O_CREAT|O_TRUNC;
mode &= ~(3|OTRUNC);
+ if(mode&ODIRECT){
+ umode |= O_DIRECT;
+ mode &= ~ODIRECT;
+ }
if(mode&OEXCL){
umode |= O_EXCL;
mode &= ~OEXCL;