Whamcloud - gitweb
LU-13697 llite: fix short io for AIO 04/39104/8
authorWang Shilong <wshilong@ddn.com>
Fri, 19 Jun 2020 14:19:18 +0000 (22:19 +0800)
committerOleg Drokin <green@whamcloud.com>
Fri, 10 Jul 2020 16:52:56 +0000 (16:52 +0000)
commit84c3e85ced2dd1d650bc7111d4a3dec06b911b33
tree93c42246690adc51b4b5b0b8b457ff2b60c82cbb
parent219cbfc7665a9260f3d5c8ceee823506a89df42f
LU-13697 llite: fix short io for AIO

The problem is currently AIO could not handle i/o size > stripe size:

We need cl io loop to handle io across stripes, since -EIOCBQUEUED is
returned for AIO, io loop will be stopped thus short io happen.

The patch try to fix the problem by making IO engine aware of
special error, and it will be proceed to finish all IO requests.

Fixes: d1dde ("LU-4198 clio: AIO support for direct IO")
Signed-off-by: Wang Shilong <wshilong@ddn.com>
Change-Id: I1885e0fc510571417d888249b381f9c2f130ca5a
Reviewed-on: https://review.whamcloud.com/39104
Tested-by: jenkins <devops@whamcloud.com>
Reviewed-by: Andreas Dilger <adilger@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
Reviewed-by: Bobi Jam <bobijam@hotmail.com>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
lustre/include/cl_object.h
lustre/llite/file.c
lustre/llite/rw26.c
lustre/llite/vvp_internal.h
lustre/llite/vvp_io.c
lustre/obdclass/cl_io.c
lustre/tests/sanity.sh