/* w_send_dblock() - Worker callback to send a P_DATA packet in order to mirror a write request @mdev: DRBD device. @w: work object. @cancel: The connection will be closed anyways  */
int w_send_dblock(struct drbd_conf *mdev, struct drbd_work *w, int cancel)
/* w_send_dblock() - Worker callback to send a P_DATA packet in order to mirror a write request @mdev: DRBD device. @w: work object. @cancel: The connection will be closed anyways  */
int w_send_dblock(struct drbd_conf *mdev, struct drbd_work *w, int cancel)
{
	struct drbd_request *req = container_of(w, struct drbd_request, w);
	int ok;
	if (unlikely(cancel)) {
		req_mod(req, send_canceled);
		return 1;
	}
	ok = drbd_send_dblock(mdev, req);
	req_mod(req, ok ? handed_over_to_network : send_failed);
	return ok;
}