struct msghdr msg;
struct iovec iov;
int len, written = 0, left = length;
- struct tcp_opt *tp = tcp_sk(sock->sk);
+ struct tcp_sock *tp = tcp_sk(sock->sk);
tp->nonagle = 2;
written = orig_size;
else
written = size;
-
+
} else {
size = orig_size;
if (tux_zerocopy_sendfile && sock->ops->sendpage &&
struct iovec iov;
char *kaddr;
mm_segment_t oldmm;
-
+
if (offset+size > PAGE_SIZE)
return -EFAULT;
kaddr = kmap(page);
-
+
msg.msg_name = NULL;
msg.msg_namelen = 0;
msg.msg_iov = &iov;
{
sock_send_desc_t sock_desc;
int len, want, nonblock = !cachemiss;
- struct tcp_opt *tp = tcp_sk(sock->sk);
+ struct tcp_sock *tp = tcp_sk(sock->sk);
tp->nonagle = 2;
sock_desc.req = req;
repeat:
- Dprintk("generic_send_file(%p,%d,%p) called, f_pos: %Ld, output_len: %Ld.\n", req, nonblock, sock, req->in_file.f_pos, req->output_len);
+ Dprintk("generic_send_file(%p,%d,%p) called, f_pos: %Ld, output_len: %Ld.\n", req, nonblock, sock, req->in_file->f_pos, req->output_len);
if (req->proto->check_req_err(req, cachemiss))
return -1;
len = -5;
goto out;
}
- if (req->total_file_len < req->in_file.f_pos)
+ if (req->total_file_len < req->in_file->f_pos)
TUX_BUG();
req->desc.written = 0;
req->desc.arg.buf = (char *) &sock_desc;
req->desc.error = 0;
Dprintk("sendfile(), desc.count: %d.\n", req->desc.count);
- do_generic_file_read(&req->in_file, &req->in_file.f_pos, &req->desc, sock_send_actor, nonblock);
+ do_generic_file_read(req->in_file, &req->in_file->f_pos, &req->desc, sock_send_actor, nonblock);
if (req->desc.written > 0) {
req->bytes_sent += req->desc.written;
req->output_len -= req->desc.written;
TUX_BUG();
Dprintk("sendfile() wrote: %d bytes.\n", req->desc.written);
if (req->output_len && !req->desc.written && !req->desc.error) {
-#if CONFIG_TUX_DEBUG
+#ifdef CONFIG_TUX_DEBUG
req->bytes_expected = 0;
#endif
- req->in_file.f_pos = 0;
+ req->in_file->f_pos = 0;
req->error = TUX_ERROR_CONN_CLOSE;
zap_request(req, cachemiss);
return -1;
break;
default:
len = req->desc.written;
-#if CONFIG_TUX_DEBUG
+#ifdef CONFIG_TUX_DEBUG
if (req->desc.error)
TDprintk("TUX: sendfile() returned error %d (signals pending: %08lx)!\n", req->desc.error, current->pending.signal.sig[0]);
#endif
goto repeat;
}
}
-#if CONFIG_TUX_DEBUG
+#ifdef CONFIG_TUX_DEBUG
if (req->desc.written != want)
- TDprintk("TUX: sendfile() wrote %d bytes, wanted %d! (pos %Ld) (signals pending: %08lx).\n", req->desc.written, want, req->in_file.f_pos, current->pending.signal.sig[0]);
+ TDprintk("TUX: sendfile() wrote %d bytes, wanted %d! (pos %Ld) (signals pending: %08lx).\n", req->desc.written, want, req->in_file->f_pos, current->pending.signal.sig[0]);
else
Dprintk("TUX: sendfile() FINISHED for req %p, wrote %d bytes.\n", req, req->desc.written);
req->bytes_expected = 0;
req->desc.arg.buf = NULL;
req->desc.error = 0;
- do_generic_file_read(&req->in_file, &req->in_file.f_pos, &req->desc,
+ do_generic_file_read(req->in_file, &req->in_file->f_pos, &req->desc,
file_fetch_actor, nonblock);
if (nonblock && (req->desc.error == -EWOULDBLOCKIO))
return 1;