The bio is the only data item type that doesn't record its full
length. Fix that.
Signed-off-by: Alex Elder <elder@inktank.com>
Reviewed-by: Josh Durgin <josh.durgin@inktank.com>
enum ceph_msg_data_type type;
union {
#ifdef CONFIG_BLOCK
- struct bio *bio;
+ struct {
+ struct bio *bio;
+ size_t bio_length;
+ };
#endif /* CONFIG_BLOCK */
struct {
struct page **pages; /* NOT OWNER. */
data = ceph_msg_data_create(CEPH_MSG_DATA_BIO);
BUG_ON(!data);
data->bio = bio;
+ data->bio_length = length;
msg->data = data;
msg->data_length = length;