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

Reviewed-by: Sage Weil <[email protected]>

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 <[email protected]>
> ---
>  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 [email protected]
> 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 [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to