Re: [PATCH v3 2/5] libceph: define struct ceph_sparse_extent and add some helpers

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




On 3/18/22 9:50 PM, Jeff Layton wrote:
When the OSD sends back a sparse read reply, it contains an array of
these structures. Define the structure and add a couple of helpers for
dealing with them.

Also add a place in struct ceph_osd_req_op to store the extent buffer,
and code to free it if it's populated when the req is torn down.

Signed-off-by: Jeff Layton <jlayton@xxxxxxxxxx>
---
  include/linux/ceph/osd_client.h | 31 ++++++++++++++++++++++++++++++-
  net/ceph/osd_client.c           | 13 +++++++++++++
  2 files changed, 43 insertions(+), 1 deletion(-)

diff --git a/include/linux/ceph/osd_client.h b/include/linux/ceph/osd_client.h
index 3122c1a3205f..00a5b53a6763 100644
--- a/include/linux/ceph/osd_client.h
+++ b/include/linux/ceph/osd_client.h
@@ -29,6 +29,17 @@ typedef void (*ceph_osdc_callback_t)(struct ceph_osd_request *);
#define CEPH_HOMELESS_OSD -1 +/*
+ * A single extent in a SPARSE_READ reply.
+ *
+ * Note that these come from the OSD as little-endian values. On BE arches,
+ * we convert them in-place after receipt.
+ */
+struct ceph_sparse_extent {
+	u64	off;
+	u64	len;
+} __attribute__((packed));
+
  /*
   * A given osd we're communicating with.
   *
@@ -104,6 +115,8 @@ struct ceph_osd_req_op {
  			u64 offset, length;
  			u64 truncate_size;
  			u32 truncate_seq;
+			int sparse_ext_len;

To be more readable, how about

s/sparse_ext_len/sparse_ext_cnt/ ?

-- Xiubo




[Index of Archives]     [CEPH Users]     [Ceph Large]     [Ceph Dev]     [Information on CEPH]     [Linux BTRFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux