There is a hole at the end of 'struct bvec_iter', so put a new field here and we can save cookie returned from submit_bio() here for supporting bio based polling. This way can avoid to extend bio unnecessarily. Signed-off-by: Ming Lei <ming.lei@xxxxxxxxxx> --- include/linux/bvec.h | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/include/linux/bvec.h b/include/linux/bvec.h index ff832e698efb..61c0f55f7165 100644 --- a/include/linux/bvec.h +++ b/include/linux/bvec.h @@ -43,6 +43,15 @@ struct bvec_iter { unsigned int bi_bvec_done; /* number of bytes completed in current bvec */ + + /* + * There is a hole at the end of bvec_iter, define one filed to + * hold something which isn't relate with 'bvec_iter', so that we can + * avoid to extend bio. So far this new field is used for bio based + * pooling, we will store returning value of underlying queue's + * submit_bio() here. + */ + unsigned int bi_private_data; }; struct bvec_iter_all { -- 2.29.2