projects
/
fio.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
[PATCH] Add support for the read/write interface of SG v3
[fio.git]
/
fio.c
diff --git
a/fio.c
b/fio.c
index 9dd8e249122ddfc75122cebb1fbca58d0901a06a..5c45cae7f64103e0a8e30b16d7f704a2680f45e8 100644
(file)
--- a/
fio.c
+++ b/
fio.c
@@
-1235,12
+1235,14
@@
static int bdev_size(struct thread_data *td)
static int get_file_size(struct thread_data *td)
{
static int get_file_size(struct thread_data *td)
{
- int ret;
+ int ret
= 0
;
if (td->filetype == FIO_TYPE_FILE)
ret = file_size(td);
if (td->filetype == FIO_TYPE_FILE)
ret = file_size(td);
- else
+ else
if (td->filetype == FIO_TYPE_BD)
ret = bdev_size(td);
ret = bdev_size(td);
+ else
+ td->real_file_size = -1;
if (ret)
return ret;
if (ret)
return ret;
@@
-1356,9
+1358,14
@@
static int setup_file(struct thread_data *td)
if (td->odirect)
flags |= O_DIRECT;
if (td->odirect)
flags |= O_DIRECT;
- if (td_read(td))
- td->fd = open(td->file_name, flags | O_RDONLY);
- else {
+ if (td_read(td)) {
+ if (td->filetype == FIO_TYPE_CHAR)
+ flags |= O_RDWR;
+ else
+ flags |= O_RDONLY;
+
+ td->fd = open(td->file_name, flags);
+ } else {
if (td->filetype == FIO_TYPE_FILE) {
if (!td->overwrite)
flags |= O_TRUNC;
if (td->filetype == FIO_TYPE_FILE) {
if (!td->overwrite)
flags |= O_TRUNC;