From: Patrick Farrell Date: Fri, 30 Jul 2021 16:11:03 +0000 (-0400) Subject: LU-13799 llite: Simplify cda_no_aio_complete use X-Git-Tag: 2.14.57~31 X-Git-Url: https://git.whamcloud.com/?a=commitdiff_plain;h=b60bd21ec5d5f34ed79c63158860b6f5e948dba2;p=fs%2Flustre-release.git LU-13799 llite: Simplify cda_no_aio_complete use It is better to handle AIO and DIO the same as much as possible, limiting the difference to setup if possible. In this spirit, move the check for DIO (is_sync_kiocb()) to the setup function rather than cleanup and just use no_aio_complete. Signed-off-by: Patrick Farrell Change-Id: I1b91e5b8f42971cb37780597402c4ee94f82a963 Reviewed-on: https://review.whamcloud.com/44154 Reviewed-by: Wang Shilong Reviewed-by: Andreas Dilger Tested-by: jenkins Tested-by: Maloo Reviewed-by: Oleg Drokin --- diff --git a/lustre/obdclass/cl_io.c b/lustre/obdclass/cl_io.c index dc2be4a..504bc8c 100644 --- a/lustre/obdclass/cl_io.c +++ b/lustre/obdclass/cl_io.c @@ -1231,7 +1231,7 @@ static void cl_aio_end(const struct lu_env *env, struct cl_sync_io *anchor) cl_page_put(env, page); } - if (!is_sync_kiocb(aio->cda_iocb) && !aio->cda_no_aio_complete) + if (!aio->cda_no_aio_complete) aio_complete(aio->cda_iocb, ret ?: aio->cda_bytes, 0); EXIT; @@ -1251,7 +1251,10 @@ struct cl_dio_aio *cl_aio_alloc(struct kiocb *iocb, struct cl_object *obj) NULL : aio, cl_aio_end); cl_page_list_init(&aio->cda_pages); aio->cda_iocb = iocb; - aio->cda_no_aio_complete = 0; + if (is_sync_kiocb(iocb)) + aio->cda_no_aio_complete = 1; + else + aio->cda_no_aio_complete = 0; cl_object_get(obj); aio->cda_obj = obj; }