From: Alex Elder <elder@inktank.com>
To: ceph-devel@vger.kernel.org
Subject: [PATCH 6/6] libceph: don't use bio_iter as a flag
Date: Mon, 18 Jun 2012 10:33:34 -0500 [thread overview]
Message-ID: <4FDF4A4E.10803@inktank.com> (raw)
In-Reply-To: <4FDF4948.10306@inktank.com>
Recently a bug was fixed in which the bio_iter field in a ceph
message was not being properly re-initialized when a message got
re-transmitted:
commit 43643528cce60ca184fe8197efa8e8da7c89a037
Author: Yan, Zheng <zheng.z.yan@intel.com>
rbd: Clear ceph_msg->bio_iter for retransmitted message
We are now only initializing the bio_iter field when we are about to
start to write message data (in prepare_write_message_data()),
rather than every time we are attempting to write any portion of the
message data (in write_partial_msg_pages()). This means we no
longer need to use the msg->bio_iter field as a flag.
So just don't do that any more. Trust prepare_write_message_data()
to ensure msg->bio_iter is properly initialized, every time we are
about to begin writing (or re-writing) a message's bio data.
Signed-off-by: Alex Elder <elder@inktank.com>
---
net/ceph/messenger.c | 6 +-----
1 file changed, 1 insertion(+), 5 deletions(-)
Index: b/net/ceph/messenger.c
===================================================================
--- a/net/ceph/messenger.c
+++ b/net/ceph/messenger.c
@@ -628,7 +628,7 @@ static void prepare_write_message_data(s
else
con->out_msg_pos.page_pos = 0;
#ifdef CONFIG_BLOCK
- if (msg->bio && !msg->bio_iter)
+ if (msg->bio)
init_bio_iter(msg->bio, &msg->bio_iter, &msg->bio_seg);
#endif
con->out_msg_pos.data_pos = 0;
@@ -696,10 +696,6 @@ static void prepare_write_message(struct
m->hdr.seq = cpu_to_le64(++con->out_seq);
m->needs_out_seq = false;
}
-#ifdef CONFIG_BLOCK
- else
- m->bio_iter = NULL;
-#endif
dout("prepare_write_message %p seq %lld type %d len %d+%d+%d %d pgs\n",
m, con->out_seq, le16_to_cpu(m->hdr.type),
prev parent reply other threads:[~2012-06-18 15:33 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-06-18 15:29 [PATCH 0/6] ceph: a few more messenger cleanups Alex Elder
2012-06-18 15:33 ` [PATCH 1/6] libceph: encapsulate out message data setup Alex Elder
2012-06-18 15:33 ` [PATCH 2/6] libceph: encapsulate advancing msg page Alex Elder
2012-06-18 15:33 ` [PATCH 3/6] libceph: don't mark footer complete before it is Alex Elder
2012-06-18 15:33 ` [PATCH 4/6] libceph: move init_bio_*() functions up Alex Elder
2012-06-18 15:33 ` [PATCH 5/6] libceph: move init of bio_iter Alex Elder
2012-06-18 15:33 ` Alex Elder [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4FDF4A4E.10803@inktank.com \
--to=elder@inktank.com \
--cc=ceph-devel@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.