aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--include/linux/ceph/osd_client.h4
-rw-r--r--net/ceph/osd_client.c3
2 files changed, 6 insertions, 1 deletions
diff --git a/include/linux/ceph/osd_client.h b/include/linux/ceph/osd_client.h
index bcf3f72ec3f8..cf0ba93426da 100644
--- a/include/linux/ceph/osd_client.h
+++ b/include/linux/ceph/osd_client.h
@@ -53,6 +53,7 @@ struct ceph_osd {
53enum ceph_osd_data_type { 53enum ceph_osd_data_type {
54 CEPH_OSD_DATA_TYPE_NONE, 54 CEPH_OSD_DATA_TYPE_NONE,
55 CEPH_OSD_DATA_TYPE_PAGES, 55 CEPH_OSD_DATA_TYPE_PAGES,
56 CEPH_OSD_DATA_TYPE_PAGELIST,
56#ifdef CONFIG_BLOCK 57#ifdef CONFIG_BLOCK
57 CEPH_OSD_DATA_TYPE_BIO, 58 CEPH_OSD_DATA_TYPE_BIO,
58#endif /* CONFIG_BLOCK */ 59#endif /* CONFIG_BLOCK */
@@ -68,8 +69,9 @@ struct ceph_osd_data {
68 bool pages_from_pool; 69 bool pages_from_pool;
69 bool own_pages; 70 bool own_pages;
70 }; 71 };
72 struct ceph_pagelist *pagelist;
71#ifdef CONFIG_BLOCK 73#ifdef CONFIG_BLOCK
72 struct bio *bio; 74 struct bio *bio;
73#endif /* CONFIG_BLOCK */ 75#endif /* CONFIG_BLOCK */
74 }; 76 };
75}; 77};
diff --git a/net/ceph/osd_client.c b/net/ceph/osd_client.c
index ce34faaa453f..4159df2d67af 100644
--- a/net/ceph/osd_client.c
+++ b/net/ceph/osd_client.c
@@ -1757,6 +1757,9 @@ static void ceph_osdc_msg_data_set(struct ceph_msg *msg,
1757 if (osd_data->length) 1757 if (osd_data->length)
1758 ceph_msg_data_set_pages(msg, osd_data->pages, 1758 ceph_msg_data_set_pages(msg, osd_data->pages,
1759 osd_data->length, osd_data->alignment); 1759 osd_data->length, osd_data->alignment);
1760 } else if (osd_data->type == CEPH_OSD_DATA_TYPE_PAGELIST) {
1761 BUG_ON(!osd_data->pagelist->length);
1762 ceph_msg_data_set_pagelist(msg, osd_data->pagelist);
1760#ifdef CONFIG_BLOCK 1763#ifdef CONFIG_BLOCK
1761 } else if (osd_data->type == CEPH_OSD_DATA_TYPE_BIO) { 1764 } else if (osd_data->type == CEPH_OSD_DATA_TYPE_BIO) {
1762 ceph_msg_data_set_bio(msg, osd_data->bio); 1765 ceph_msg_data_set_bio(msg, osd_data->bio);