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));
}
|