+ dsi->in_write++;
+
+ dsi->flags |= DSI_NOREPLY;
+ dsi->header.dsi_flags = DSIFL_REPLY;
+ dsi->header.dsi_len = htonl(length);
+ dsi->header.dsi_data.dsi_code = htonl(err);
+ dsi_header_pack_reply(dsi, block);
+
+#ifdef HAVE_SENDFILEV
+ total += DSI_BLOCKSIZ;
+ sfvcnt = 2;
+ vec[0].sfv_fd = SFV_FD_SELF;
+ vec[0].sfv_flag = 0;
+ /* Cast to unsigned long to prevent sign extension of the
+ * pointer value for the LFS case; see Apache PR 39463. */
+ vec[0].sfv_off = (unsigned long)block;
+ vec[0].sfv_len = DSI_BLOCKSIZ;
+ vec[1].sfv_fd = fromfd;
+ vec[1].sfv_flag = 0;
+ vec[1].sfv_off = offset;
+ vec[1].sfv_len = length;
+#elif defined(FREEBSD)
+ iovec.iov_base = block;
+ iovec.iov_len = DSI_BLOCKSIZ;
+#else
+ dsi_stream_write(dsi, block, sizeof(block), DSI_MSG_MORE);
+#endif