]> 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)
committerJeff Layton <jlayton@kernel.org>
Tue, 31 May 2022 14:45:11 +0000 (10:45 -0400)
commitc21d629e877ebef049fb2376f0d9fb5e6531a0ba
tree5eacc168771152b919a12697eb8903d593a7d720
parent44a495843cd434dc61780b12ba1bc7aba8da19f6
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