direct IO write uses buffered write for pages which could not be
released. If not adjacent pages are not releasable,
vio->u.write.vui_queue list becomes non-contiguos which makes
page_list_sanity_check() to fail.
Have ll_write_commit to do vvp_io_write_commit() when it is called in
course of direct IO.
Cray-bug-id: MRP-4415
Signed-off-by: Vladimir Saveliev <c17830@cray.com>
Change-Id: I21e653c4d45553c85ff5ded8edf22017966c7ba4
Reviewed-on: https://review.whamcloud.com/30659
Tested-by: Jenkins
Tested-by: Maloo <hpdd-maloo@intel.com>
Reviewed-by: Jinshan Xiong <jinshan.xiong@intel.com>
Reviewed-by: Alexey Lyashkov <c17817@cray.com>
Reviewed-by: Andrew Perepechko <c17827@cray.com>
Reviewed-by: Oleg Drokin <oleg.drokin@intel.com>
/* page list is not contiguous now, commit it now */
unplug = true;
}
/* page list is not contiguous now, commit it now */
unplug = true;
}
- if (unplug ||
- file->f_flags & O_SYNC || IS_SYNC(file_inode(file)))
+ if (unplug || io->u.ci_rw.rw_sync)
result = vvp_io_write_commit(env, io);
if (result < 0)
result = vvp_io_write_commit(env, io);
if (result < 0)