mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
synced 2025-01-11 16:29:05 +00:00
libceph: have osd requests support pagelist data
Add support for recording a ceph pagelist as data associated with an osd request. Signed-off-by: Alex Elder <elder@inktank.com> Reviewed-by: Josh Durgin <josh.durgin@inktank.com>
This commit is contained in:
parent
175face2ba
commit
9a5e6d09dd
@ -53,6 +53,7 @@ struct ceph_osd {
|
||||
enum ceph_osd_data_type {
|
||||
CEPH_OSD_DATA_TYPE_NONE,
|
||||
CEPH_OSD_DATA_TYPE_PAGES,
|
||||
CEPH_OSD_DATA_TYPE_PAGELIST,
|
||||
#ifdef CONFIG_BLOCK
|
||||
CEPH_OSD_DATA_TYPE_BIO,
|
||||
#endif /* CONFIG_BLOCK */
|
||||
@ -68,8 +69,9 @@ struct ceph_osd_data {
|
||||
bool pages_from_pool;
|
||||
bool own_pages;
|
||||
};
|
||||
struct ceph_pagelist *pagelist;
|
||||
#ifdef CONFIG_BLOCK
|
||||
struct bio *bio;
|
||||
struct bio *bio;
|
||||
#endif /* CONFIG_BLOCK */
|
||||
};
|
||||
};
|
||||
|
@ -1757,6 +1757,9 @@ static void ceph_osdc_msg_data_set(struct ceph_msg *msg,
|
||||
if (osd_data->length)
|
||||
ceph_msg_data_set_pages(msg, osd_data->pages,
|
||||
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
|
||||
} else if (osd_data->type == CEPH_OSD_DATA_TYPE_BIO) {
|
||||
ceph_msg_data_set_bio(msg, osd_data->bio);
|
||||
|
Loading…
x
Reference in New Issue
Block a user