drbd_transport_tcp.c (drbd-9.1.8) | : | drbd_transport_tcp.c (drbd-9.1.9) | ||
---|---|---|---|---|
skipping to change at line 348 | skipping to change at line 348 | |||
page_chain_for_each(page) { | page_chain_for_each(page) { | |||
size_t len = min_t(int, size, PAGE_SIZE); | size_t len = min_t(int, size, PAGE_SIZE); | |||
void *data = kmap(page); | void *data = kmap(page); | |||
err = dtt_recv_short(socket, data, len, 0); | err = dtt_recv_short(socket, data, len, 0); | |||
kunmap(page); | kunmap(page); | |||
set_page_chain_offset(page, 0); | set_page_chain_offset(page, 0); | |||
set_page_chain_size(page, len); | set_page_chain_size(page, len); | |||
if (err < 0) | if (err < 0) | |||
goto fail; | goto fail; | |||
size -= len; | size -= err; | |||
} | ||||
if (unlikely(size)) { | ||||
tr_warn(transport, "Not enough data received; missing %lu bytes\n | ||||
", size); | ||||
err = -ENODATA; | ||||
goto fail; | ||||
} | } | |||
return 0; | return 0; | |||
fail: | fail: | |||
drbd_free_page_chain(transport, chain, 0); | drbd_free_page_chain(transport, chain, 0); | |||
return err; | return err; | |||
} | } | |||
static void dtt_stats(struct drbd_transport *transport, struct drbd_transport_st ats *stats) | static void dtt_stats(struct drbd_transport *transport, struct drbd_transport_st ats *stats) | |||
{ | { | |||
struct drbd_tcp_transport *tcp_transport = | struct drbd_tcp_transport *tcp_transport = | |||
End of changes. 1 change blocks. | ||||
1 lines changed or deleted | 7 lines changed or added |