Re: [PATCH] libceph: don't clear bio_iter in prepare_write_message()

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Reviewed-by: Josh Durgin <josh.durgin@xxxxxxxxxxx>

On 03/09/2013 08:36 AM, Alex Elder wrote:
This patch is available in the branch "review/wip-msgr-refactor"
(prior to 6 other patches) in the ceph-client git repository.
That branch is based on branch "review/wip-abstract-2".

					-Alex

At one time it was necessary to clear a message's bio_iter field to
avoid a bad pointer dereference in write_partial_msg_pages().

That no longer seems to be the case.  Here's why.

The message's bio fields represent (in this case) outgoing data.
Between where the bio_iter is made NULL in prepare_write_message()
and the call in that function to prepare_message_data(), the
bio fields are never used.

In prepare_message_data(), init-bio_iter() is called, and the result
of that overwrites the value in the message's bio_iter field.

Because it gets overwritten anyway, there is no need to set it to
NULL.  So don't do it.

This resolves:
     http://tracker.ceph.com/issues/4402

Signed-off-by: Alex Elder <elder@xxxxxxxxxxx>
---
  net/ceph/messenger.c |    4 ----
  1 file changed, 4 deletions(-)

diff --git a/net/ceph/messenger.c b/net/ceph/messenger.c
index e75a03d..17d9321 100644
--- a/net/ceph/messenger.c
+++ b/net/ceph/messenger.c
@@ -804,10 +804,6 @@ static void prepare_write_message(struct
ceph_connection *con)
  		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 (%zd)\n",
  	     m, con->out_seq, le16_to_cpu(m->hdr.type),


--
To unsubscribe from this list: send the line "unsubscribe ceph-devel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [CEPH Users]     [Ceph Large]     [Information on CEPH]     [Linux BTRFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]
  Powered by Linux