Whamcloud - gitweb
LU-13798 llite: parallelize direct i/o issuance
[fs/lustre-release.git] / lustre / include / cl_object.h
index 626b3ef..26fbd28 100644 (file)
@@ -1989,7 +1989,13 @@ struct cl_io {
        /**
         * Sequential read hints.
         */
-                            ci_seq_read:1;
+                            ci_seq_read:1,
+       /**
+        * Do parallel (async) submission of DIO RPCs.  Note DIO is still sync
+        * to userspace, only the RPCs are submitted async, then waited for at
+        * the llite layer before returning.
+        */
+                            ci_parallel_dio:1;
        /**
         * Bypass quota check
         */
@@ -2569,10 +2575,12 @@ typedef void (cl_sync_io_end_t)(const struct lu_env *, struct cl_sync_io *);
 void cl_sync_io_init_notify(struct cl_sync_io *anchor, int nr,
                            struct cl_dio_aio *aio, cl_sync_io_end_t *end);
 
-int  cl_sync_io_wait(const struct lu_env *env, struct cl_sync_io *anchor,
-                    long timeout);
+int cl_sync_io_wait(const struct lu_env *env, struct cl_sync_io *anchor,
+                   long timeout);
 void cl_sync_io_note(const struct lu_env *env, struct cl_sync_io *anchor,
                     int ioret);
+int cl_sync_io_wait_recycle(const struct lu_env *env, struct cl_sync_io *anchor,
+                           long timeout, int ioret);
 struct cl_dio_aio *cl_aio_alloc(struct kiocb *iocb);
 void cl_aio_free(struct cl_dio_aio *aio);
 static inline void cl_sync_io_init(struct cl_sync_io *anchor, int nr)