Re: [PATCH 1/3] ceph: messenger: use read_partial() in read_partial_message()

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

 



Reviewed-by: Sage Weil <sage@xxxxxxxxxxx>

On Thu, 10 May 2012, Alex Elder wrote:

> There are two blocks of code in read_partial_message()--those that
> read the header and footer of the message--that can be replaced by a
> call to read_partial().  Do that.
> 
> Signed-off-by: Alex Elder <elder@xxxxxxxxxxx>
> ---
>  net/ceph/messenger.c |   30 ++++++++++--------------------
>  1 file changed, 10 insertions(+), 20 deletions(-)
> 
> diff --git a/net/ceph/messenger.c b/net/ceph/messenger.c
> index f0993af..673133e 100644
> --- a/net/ceph/messenger.c
> +++ b/net/ceph/messenger.c
> @@ -1628,7 +1628,7 @@ static int read_partial_message(struct ceph_connection
> *con)
>  {
>  	struct ceph_msg *m = con->in_msg;
>  	int ret;
> -	int to, left;
> +	int to;
>  	unsigned front_len, middle_len, data_len;
>  	bool do_datacrc = !con->msgr->nocrc;
>  	int skip;
> @@ -1638,15 +1638,10 @@ static int read_partial_message(struct ceph_connection
> *con)
>  	dout("read_partial_message con %p msg %p\n", con, m);
> 
>  	/* header */
> -	while (con->in_base_pos < sizeof(con->in_hdr)) {
> -		left = sizeof(con->in_hdr) - con->in_base_pos;
> -		ret = ceph_tcp_recvmsg(con->sock,
> -				       (char *)&con->in_hdr +
> con->in_base_pos,
> -				       left);
> -		if (ret <= 0)
> -			return ret;
> -		con->in_base_pos += ret;
> -	}
> +	to = 0;
> +	ret = read_partial(con, &to, sizeof (con->in_hdr), &con->in_hdr);
> +	if (ret <= 0)
> +		return ret;
> 
>  	crc = crc32c(0, &con->in_hdr, offsetof(struct ceph_msg_header, crc));
>  	if (cpu_to_le32(crc) != con->in_hdr.crc) {
> @@ -1759,16 +1754,11 @@ static int read_partial_message(struct ceph_connection
> *con)
>  	}
> 
>  	/* footer */
> -	to = sizeof(m->hdr) + sizeof(m->footer);
> -	while (con->in_base_pos < to) {
> -		left = to - con->in_base_pos;
> -		ret = ceph_tcp_recvmsg(con->sock, (char *)&m->footer +
> -				       (con->in_base_pos - sizeof(m->hdr)),
> -				       left);
> -		if (ret <= 0)
> -			return ret;
> -		con->in_base_pos += ret;
> -	}
> +	to = sizeof (m->hdr);
> +	ret = read_partial(con, &to, sizeof (m->footer), &m->footer);
> +	if (ret <= 0)
> +		return ret;
> +
>  	dout("read_partial_message got msg %p %d (%u) + %d (%u) + %d (%u)\n",
>  	     m, front_len, m->footer.front_crc, middle_len,
>  	     m->footer.middle_crc, data_len, m->footer.data_crc);
> -- 
> 1.7.9.5
> 
> --
> 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
> 
> 
--
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