summaryrefslogtreecommitdiff
path: root/benchmarks/blogbench/patches/patch-ad
blob: ddb89785bb029b4941896916f013d357490e4857 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
$NetBSD: patch-ad,v 1.3 2015/08/16 06:08:57 mef Exp $

 			     
--- src/helpers.c~	2015-08-16 14:59:03.000000000 +0900
+++ src/helpers.c	2015-08-16 14:59:14.000000000 +0900
@@ -46,12 +46,24 @@ int create_dummy_file(const char * const
 {
     static char garbage[WRITE_CHUNK_SIZE];
     size_t towrite;
-    ssize_t written;    
+    ssize_t written;
     int fd;
+    mode_t m;
     
-    if ((fd = open(file_name, O_CREAT | O_TRUNC | O_WRONLY,
-                   (mode_t) 0600)) == -1) {
-        if (errno != ENOENT) {      
+
+#if defined(O_DIRECT)
+    m = O_CREAT|O_TRUNC|O_WRONLY|(do_directio ? O_DIRECT : 0);
+#else
+    if (do_directio) {
+        reentrant_printf("open: O_DIRECT is not supported on this system.\n");
+        return -1;
+    }
+    m = O_CREAT|O_TRUNC|O_WRONLY;
+#endif
+
+    fd = open(file_name, m, (mode_t)0600);
+    if (fd == -1) { 
+        if (errno != ENOENT) {
             reentrant_printf("open(\"%s\"): %s\n",
                              file_name, strerror(errno));
         }