Patchwork [3.5.yuz,extended,stable] Patch "libceph: move init of bio_iter" has been added to staging queue

mail settings
Submitter Herton Ronaldo Krzesinski
Date Nov. 20, 2012, 5:16 p.m.
Message ID <>
Download mbox | patch
Permalink /patch/200437/
State New
Headers show


Herton Ronaldo Krzesinski - Nov. 20, 2012, 5:16 p.m.
This is a note to let you know that I have just added a patch titled

    libceph: move init of bio_iter

to the linux-3.5.y-queue branch of the 3.5.yuz extended stable tree 
which can be found at:;a=shortlog;h=refs/heads/linux-3.5.y-queue

If you, or anyone else, feels it should not be added to this tree, please 
reply to this email.

For more information about the 3.5.yuz tree, see



From d324214e5a1859ab39d1bd93d918bc5ff34998d9 Mon Sep 17 00:00:00 2001
From: Alex Elder <>
Date: Mon, 11 Jun 2012 14:57:13 -0500
Subject: [PATCH 30/78] libceph: move init of bio_iter

commit 572c588edadaa3da3992bd8a0fed830bbcc861f8 upstream.

If a message has a non-null bio pointer, its bio_iter field is
initialized in write_partial_msg_pages() if this has not been done
already.  This is really a one-time setup operation for sending a
message's (bio) data, so move that initialization code into
prepare_write_message_data() which serves that purpose.

Signed-off-by: Alex Elder <>
Reviewed-by: Sage Weil <>
Signed-off-by: Herton Ronaldo Krzesinski <>
 net/ceph/messenger.c |    9 ++++-----
 1 file changed, 4 insertions(+), 5 deletions(-)



diff --git a/net/ceph/messenger.c b/net/ceph/messenger.c
index 5e8dbc0d..b83c963 100644
--- a/net/ceph/messenger.c
+++ b/net/ceph/messenger.c
@@ -603,6 +603,10 @@  static void prepare_write_message_data(struct ceph_connection *con)
 		con->out_msg_pos.page_pos = msg->page_alignment;
 		con->out_msg_pos.page_pos = 0;
+	if (msg->bio && !msg->bio_iter)
+		init_bio_iter(msg->bio, &msg->bio_iter, &msg->bio_seg);
 	con->out_msg_pos.data_pos = 0;
 	con->out_msg_pos.did_page_crc = false;
 	con->out_more = 1;  /* data + footer will follow */
@@ -942,11 +946,6 @@  static int write_partial_msg_pages(struct ceph_connection *con)
 	     con, msg, con->, msg->nr_pages,

-	if (msg->bio && !msg->bio_iter)
-		init_bio_iter(msg->bio, &msg->bio_iter, &msg->bio_seg);
 	while (data_len > con->out_msg_pos.data_pos) {
 		struct page *page = NULL;
 		int max_write = PAGE_SIZE;