Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 9a5e6d09 authored by Alex Elder's avatar Alex Elder Committed by Sage Weil
Browse files

libceph: have osd requests support pagelist data



Add support for recording a ceph pagelist as data associated with an
osd request.

Signed-off-by: default avatarAlex Elder <elder@inktank.com>
Reviewed-by: default avatarJosh Durgin <josh.durgin@inktank.com>
parent 175face2
Loading
Loading
Loading
Loading
+3 −1
Original line number Original line Diff line number Diff line
@@ -53,6 +53,7 @@ struct ceph_osd {
enum ceph_osd_data_type {
enum ceph_osd_data_type {
	CEPH_OSD_DATA_TYPE_NONE,
	CEPH_OSD_DATA_TYPE_NONE,
	CEPH_OSD_DATA_TYPE_PAGES,
	CEPH_OSD_DATA_TYPE_PAGES,
	CEPH_OSD_DATA_TYPE_PAGELIST,
#ifdef CONFIG_BLOCK
#ifdef CONFIG_BLOCK
	CEPH_OSD_DATA_TYPE_BIO,
	CEPH_OSD_DATA_TYPE_BIO,
#endif /* CONFIG_BLOCK */
#endif /* CONFIG_BLOCK */
@@ -68,6 +69,7 @@ struct ceph_osd_data {
			bool		pages_from_pool;
			bool		pages_from_pool;
			bool		own_pages;
			bool		own_pages;
		};
		};
		struct ceph_pagelist	*pagelist;
#ifdef CONFIG_BLOCK
#ifdef CONFIG_BLOCK
		struct bio       	*bio;
		struct bio       	*bio;
#endif /* CONFIG_BLOCK */
#endif /* CONFIG_BLOCK */
+3 −0
Original line number Original line Diff line number Diff line
@@ -1757,6 +1757,9 @@ static void ceph_osdc_msg_data_set(struct ceph_msg *msg,
		if (osd_data->length)
		if (osd_data->length)
			ceph_msg_data_set_pages(msg, osd_data->pages,
			ceph_msg_data_set_pages(msg, osd_data->pages,
				osd_data->length, osd_data->alignment);
				osd_data->length, osd_data->alignment);
	} else if (osd_data->type == CEPH_OSD_DATA_TYPE_PAGELIST) {
		BUG_ON(!osd_data->pagelist->length);
		ceph_msg_data_set_pagelist(msg, osd_data->pagelist);
#ifdef CONFIG_BLOCK
#ifdef CONFIG_BLOCK
	} else if (osd_data->type == CEPH_OSD_DATA_TYPE_BIO) {
	} else if (osd_data->type == CEPH_OSD_DATA_TYPE_BIO) {
		ceph_msg_data_set_bio(msg, osd_data->bio);
		ceph_msg_data_set_bio(msg, osd_data->bio);