From: Alex Elder Date: Fri, 5 Apr 2013 19:46:01 +0000 (-0500) Subject: libceph: record bio length X-Git-Tag: v3.12-rc1~575^2~156 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=c851c49591ebf000c610711e39eea7da5ff05b21;p=kernel%2Fkernel-generic.git libceph: record bio length The bio is the only data item type that doesn't record its full length. Fix that. Signed-off-by: Alex Elder Reviewed-by: Josh Durgin --- diff --git a/include/linux/ceph/messenger.h b/include/linux/ceph/messenger.h index cdeebae..4fb870a 100644 --- a/include/linux/ceph/messenger.h +++ b/include/linux/ceph/messenger.h @@ -116,7 +116,10 @@ struct ceph_msg_data { 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. */ diff --git a/net/ceph/messenger.c b/net/ceph/messenger.c index cb5b4e6..731bb9e 100644 --- a/net/ceph/messenger.c +++ b/net/ceph/messenger.c @@ -3032,6 +3032,7 @@ void ceph_msg_data_set_bio(struct ceph_msg *msg, struct bio *bio, 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;