projects
/
fio.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
io_u: re-invalidate cache when looping around without file open/close
[fio.git]
/
engines
/
e4defrag.c
diff --git
a/engines/e4defrag.c
b/engines/e4defrag.c
index e53636eb26e382b3e318abef48bd3b211d2695f1..4b444888aa9bb51c5a660aee67f385dd6f20c021 100644
(file)
--- a/
engines/e4defrag.c
+++ b/
engines/e4defrag.c
@@
-95,7
+95,7
@@
static int fio_e4defrag_init(struct thread_data *td)
ed->donor_fd = open(donor_name, O_CREAT|O_WRONLY, 0644);
if (ed->donor_fd < 0) {
td_verror(td, errno, "io_queue_init");
ed->donor_fd = open(donor_name, O_CREAT|O_WRONLY, 0644);
if (ed->donor_fd < 0) {
td_verror(td, errno, "io_queue_init");
- log_err("Can't open donor file %s err:%d", donor_name, ed->donor_fd);
+ log_err("Can't open donor file %s err:%d
\n
", donor_name, ed->donor_fd);
free(ed);
return 1;
}
free(ed);
return 1;
}
@@
-172,8
+172,13
@@
static int fio_e4defrag_queue(struct thread_data *td, struct io_u *io_u)
len = io_u->xfer_buflen;
if (len != io_u->xfer_buflen) {
len = io_u->xfer_buflen;
if (len != io_u->xfer_buflen) {
- io_u->resid = io_u->xfer_buflen - len;
- io_u->error = 0;
+ if (len) {
+ io_u->resid = io_u->xfer_buflen - len;
+ io_u->error = 0;
+ } else {
+ /* access beyond i_size */
+ io_u->error = EINVAL;
+ }
}
if (ret)
io_u->error = errno;
}
if (ret)
io_u->error = errno;