libceph: use kernel_sendpage() for sending zeroes
authorAlex Elder <elder@dreamhost.com>
Wed, 7 Mar 2012 17:40:08 +0000 (11:40 -0600)
committerAlex Elder <elder@dreamhost.com>
Thu, 22 Mar 2012 15:47:51 +0000 (10:47 -0500)
commit31739139f3ed7be802dd9019ec8d8cc910e3d241
tree3182393002d7a8e29d230e30aa4920d7de737530
parent37675b0f42a8f7699c3602350d1c3b2a1698a3d3
libceph: use kernel_sendpage() for sending zeroes

If a message queued for send gets revoked, zeroes are sent over the
wire instead of any unsent data.  This is done by constructing a
message and passing it to kernel_sendmsg() via ceph_tcp_sendmsg().

Since we are already working with a page in this case we can use
the sendpage interface instead.  Create a new ceph_tcp_sendpage()
helper that sets up flags to match the way ceph_tcp_sendmsg()
does now.

Signed-off-by: Alex Elder <elder@dreamhost.com>
Reviewed-by: Sage Weil <sage@newdream.net>
net/ceph/messenger.c