Jeff Layton f628d79997 libceph: add sparse read support to OSD client
Have get_reply check for the presence of sparse read ops in the
request and set the sparse_read boolean in the msg. That will queue the
messenger layer to use the sparse read codepath instead of the normal
data receive.

Add a new sparse_read operation for the OSD client, driven by its own
state machine. The messenger will repeatedly call the sparse_read
operation, and it will pass back the necessary info to set up to read
the next extent of data, while zero-filling the sparse regions.

The state machine will stop at the end of the last extent, and will
attach the extent map buffer to the ceph_osd_req_op so that the caller
can use it.

Signed-off-by: Jeff Layton <jlayton@kernel.org>
Reviewed-by: Xiubo Li <xiubli@redhat.com>
Reviewed-and-tested-by: Luís Henriques <lhenriques@suse.de>
Reviewed-by: Milind Changire <mchangir@redhat.com>
Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
2023-08-22 09:01:47 +02:00
..
2023-05-31 13:06:57 +02:00
2023-08-16 08:57:41 +01:00
2023-03-16 17:34:40 -07:00
2023-07-03 11:26:05 -07:00
2023-06-24 15:41:46 -07:00
2023-06-28 16:43:10 -07:00
2023-06-28 16:43:10 -07:00
2023-08-16 08:57:41 +01:00
2023-06-28 16:43:10 -07:00