This commit essentially reverts the following fives commits:
d33db728d ("fix regression by
8c43ba62('filesetup: align layout buffer')")
47534cda0 ("filesetup: add non O_DIRECT direct I/O support for initial layout setup")
6c3169f9c ("filesetup: add direct=1 failure warning to layout")
8c43ba625 ("filesetup: align layout buffer")
6e344dc34 ("filesetup: keep OS_O_DIRECT flag when pre-allocating file")
in reverse order, since we keep having issues with the basic idea of
using O_DIRECT for file layout or extensions, if the job file has
asked for O_DIRECT.
Signed-off-by: Jens Axboe <axboe@kernel.dk>
#include "os/os.h"
#include "hash.h"
#include "lib/axmap.h"
#include "os/os.h"
#include "hash.h"
#include "lib/axmap.h"
-#include "lib/memalign.h"
#ifdef CONFIG_LINUX_FALLOCATE
#include <linux/falloc.h>
#ifdef CONFIG_LINUX_FALLOCATE
#include <linux/falloc.h>
{
int new_layout = 0, unlink_file = 0, flags;
unsigned long long left;
{
int new_layout = 0, unlink_file = 0, flags;
unsigned long long left;
- unsigned int bs, alloc_size = 0;
char *b = NULL;
if (read_only) {
char *b = NULL;
if (read_only) {
flags |= O_CREAT;
if (new_layout)
flags |= O_TRUNC;
flags |= O_CREAT;
if (new_layout)
flags |= O_TRUNC;
- if (td->o.odirect)
- flags |= OS_O_DIRECT;
#ifdef WIN32
flags |= _O_BINARY;
#ifdef WIN32
flags |= _O_BINARY;
if (err == ENOENT && !td->o.allow_create)
log_err("fio: file creation disallowed by "
"allow_file_create=0\n");
if (err == ENOENT && !td->o.allow_create)
log_err("fio: file creation disallowed by "
"allow_file_create=0\n");
- else {
- if (err == EINVAL && (flags & OS_O_DIRECT))
- log_err("fio: looks like your filesystem "
- "does not support "
- "direct=1/buffered=0\n");
-
td_verror(td, err, "open");
td_verror(td, err, "open");
- if (td->o.odirect && !OS_O_DIRECT && fio_set_directio(td, f))
- goto err;
-
left = f->real_file_size;
bs = td->o.max_bs[DDIR_WRITE];
if (bs > left)
bs = left;
left = f->real_file_size;
bs = td->o.max_bs[DDIR_WRITE];
if (bs > left)
bs = left;
- alloc_size = bs;
- b = fio_memalign(page_size, alloc_size);
- td_verror(td, errno, "fio_memalign");
+ td_verror(td, errno, "malloc");
f->io_size = f->real_file_size;
}
f->io_size = f->real_file_size;
}
- fio_memfree(b, alloc_size);
done:
return 0;
err:
close(f->fd);
f->fd = -1;
if (b)
done:
return 0;
err:
close(f->fd);
f->fd = -1;
if (b)
- fio_memfree(b, alloc_size);