]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph-client.git/commit
libceph: add sparse read support to OSD client
authorJeff Layton <jlayton@kernel.org>
Fri, 11 Feb 2022 16:38:02 +0000 (11:38 -0500)
committerIlya Dryomov <idryomov@gmail.com>
Mon, 15 Aug 2022 12:51:41 +0000 (14:51 +0200)
commit4ef3c12d04a8665dc854acc6371329f9d767641a
treeaa4befd1dce6ef83d25a20005bb22c8847fd0b4b
parentb766ae044b5daee41252a41178b51064572f573a
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.

Reviewed-by: Xiubo Li <xiubli@redhat.com>
Signed-off-by: Jeff Layton <jlayton@kernel.org>
include/linux/ceph/osd_client.h
net/ceph/osd_client.c