Re: [PATCH 2/2] libceph: some simple changes

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

 



Looks ok, as long as this isn't broken if the moving zero_page_address 
inside write_partial_msg_pages().

Reviewed-by: Sage Weil <sage@xxxxxxxxxxxx>

On Tue, 28 Feb 2012, Alex Elder wrote:

> Nothing too big here.
>     - define the size of the buffer used for consuming ignored
>       incoming data using a symbolic constant
>     - simplify the condition determining whether to unmap the page
>       in write_partial_msg_pages(): do it for crc but not if the
>       page is the zero page
> 
> Signed-off-by: Alex Elder <elder@xxxxxxxxxxxxx>
> ---
>  net/ceph/messenger.c |   13 +++++++++----
>  1 files changed, 9 insertions(+), 4 deletions(-)
> 
> diff --git a/net/ceph/messenger.c b/net/ceph/messenger.c
> index 63f281f..27a1364 100644
> --- a/net/ceph/messenger.c
> +++ b/net/ceph/messenger.c
> @@ -38,6 +38,11 @@ static char tag_keepalive = CEPH_MSGR_TAG_KEEPALIVE;
>  static struct lock_class_key socket_class;
>  #endif
> 
> +/*
> + * When skipping (ignoring) a block of input we read it into a "skip
> + * buffer," which is this many bytes in size.
> + */
> +#define SKIP_BUF_SIZE	1024
> 
>  static void queue_con(struct ceph_connection *con);
>  static void con_work(struct work_struct *);
> @@ -889,8 +894,7 @@ static int write_partial_msg_pages(struct ceph_connection
> *con)
>  				      MSG_DONTWAIT | MSG_NOSIGNAL |
>  				      MSG_MORE);
> 
> -		if (do_crc &&
> -		    (msg->pages || msg->pagelist || msg->bio || in_trail))
> +		if (do_crc && kaddr != zero_page_address)
>  			kunmap(page);
> 
>  		if (ret == -EAGAIN)
> @@ -1979,8 +1983,9 @@ more:
>  		 *
>  		 * FIXME: there must be a better way to do this!
>  		 */
> -		static char buf[1024];
> -		int skip = min(1024, -con->in_base_pos);
> +		static char buf[SKIP_BUF_SIZE];
> +		int skip = min((int) sizeof buf, -con->in_base_pos);
> +
>  		dout("skipping %d / %d bytes\n", skip, -con->in_base_pos);
>  		ret = ceph_tcp_recvmsg(con->sock, buf, skip);
>  		if (ret <= 0)
> -- 
> 1.7.5.4
> 
> --
> 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