libceph: distinguish page and bio requests
An osd request uses either pages or a bio list for its data. Use a union to record information about the two, and add a data type tag to select between them. Signed-off-by: Alex Elder <elder@inktank.com> Reviewed-by: Josh Durgin <josh.durgin@inktank.com>
This commit is contained in:
@@ -50,8 +50,17 @@ struct ceph_osd {
|
||||
|
||||
#define CEPH_OSD_MAX_OP 10
|
||||
|
||||
enum ceph_osd_data_type {
|
||||
CEPH_OSD_DATA_TYPE_NONE,
|
||||
CEPH_OSD_DATA_TYPE_PAGES,
|
||||
#ifdef CONFIG_BLOCK
|
||||
CEPH_OSD_DATA_TYPE_BIO,
|
||||
#endif /* CONFIG_BLOCK */
|
||||
};
|
||||
|
||||
struct ceph_osd_data {
|
||||
struct {
|
||||
enum ceph_osd_data_type type;
|
||||
union {
|
||||
struct {
|
||||
struct page **pages;
|
||||
u32 num_pages;
|
||||
|
Reference in New Issue
Block a user