Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 9960
b: refs/heads/master
c: 470056c
h: refs/heads/master
v: v3
  • Loading branch information
Chuck Lever authored and Trond Myklebust committed Sep 23, 2005
1 parent 65d647c commit 7e806fa
Show file tree
Hide file tree
Showing 4 changed files with 20 additions and 26 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 03bf4b707eee06706c9db343dd5c905b7ee47ed2
refs/heads/master: 470056c288334eb0b37be26c9ff8aee37ed1cc7a
4 changes: 2 additions & 2 deletions trunk/include/linux/sunrpc/xprt.h
Original file line number Diff line number Diff line change
Expand Up @@ -100,7 +100,7 @@ struct rpc_rqst {
#define rq_slen rq_snd_buf.len

struct rpc_xprt_ops {
void (*set_buffer_size)(struct rpc_xprt *xprt);
void (*set_buffer_size)(struct rpc_xprt *xprt, size_t sndsize, size_t rcvsize);
int (*reserve_xprt)(struct rpc_task *task);
void (*release_xprt)(struct rpc_xprt *xprt, struct rpc_task *task);
void (*connect)(struct rpc_task *task);
Expand All @@ -124,7 +124,7 @@ struct rpc_xprt {
unsigned long cong; /* current congestion */
unsigned long cwnd; /* congestion window */

unsigned int rcvsize, /* transport rcv buffer size */
size_t rcvsize, /* transport rcv buffer size */
sndsize; /* transport send buffer size */

size_t max_payload; /* largest RPC payload size,
Expand Down
10 changes: 2 additions & 8 deletions trunk/net/sunrpc/clnt.c
Original file line number Diff line number Diff line change
Expand Up @@ -517,14 +517,8 @@ void
rpc_setbufsize(struct rpc_clnt *clnt, unsigned int sndsize, unsigned int rcvsize)
{
struct rpc_xprt *xprt = clnt->cl_xprt;

xprt->sndsize = 0;
if (sndsize)
xprt->sndsize = sndsize + RPC_SLACK_SPACE;
xprt->rcvsize = 0;
if (rcvsize)
xprt->rcvsize = rcvsize + RPC_SLACK_SPACE;
xprt->ops->set_buffer_size(xprt);
if (xprt->ops->set_buffer_size)
xprt->ops->set_buffer_size(xprt, sndsize, rcvsize);
}

/*
Expand Down
30 changes: 15 additions & 15 deletions trunk/net/sunrpc/xprtsock.c
Original file line number Diff line number Diff line change
Expand Up @@ -865,15 +865,7 @@ static void xs_tcp_write_space(struct sock *sk)
read_unlock(&sk->sk_callback_lock);
}

/**
* xs_udp_set_buffer_size - set send and receive limits
* @xprt: generic transport
*
* Set socket send and receive limits based on the
* sndsize and rcvsize fields in the generic transport
* structure.
*/
static void xs_udp_set_buffer_size(struct rpc_xprt *xprt)
static void xs_udp_do_set_buffer_size(struct rpc_xprt *xprt)
{
struct sock *sk = xprt->inet;

Expand All @@ -889,14 +881,23 @@ static void xs_udp_set_buffer_size(struct rpc_xprt *xprt)
}

/**
* xs_tcp_set_buffer_size - set send and receive limits
* xs_udp_set_buffer_size - set send and receive limits
* @xprt: generic transport
* @sndsize: requested size of send buffer, in bytes
* @rcvsize: requested size of receive buffer, in bytes
*
* Nothing to do for TCP.
* Set socket send and receive buffer size limits.
*/
static void xs_tcp_set_buffer_size(struct rpc_xprt *xprt)
static void xs_udp_set_buffer_size(struct rpc_xprt *xprt, size_t sndsize, size_t rcvsize)
{
return;
xprt->sndsize = 0;
if (sndsize)
xprt->sndsize = sndsize + 1024;
xprt->rcvsize = 0;
if (rcvsize)
xprt->rcvsize = rcvsize + 1024;

xs_udp_do_set_buffer_size(xprt);
}

/**
Expand Down Expand Up @@ -989,7 +990,7 @@ static void xs_udp_connect_worker(void *args)

write_unlock_bh(&sk->sk_callback_lock);
}
xs_udp_set_buffer_size(xprt);
xs_udp_do_set_buffer_size(xprt);
status = 0;
out:
xprt_wake_pending_tasks(xprt, status);
Expand Down Expand Up @@ -1158,7 +1159,6 @@ static struct rpc_xprt_ops xs_udp_ops = {
};

static struct rpc_xprt_ops xs_tcp_ops = {
.set_buffer_size = xs_tcp_set_buffer_size,
.reserve_xprt = xprt_reserve_xprt,
.release_xprt = xprt_release_xprt,
.connect = xs_connect,
Expand Down

0 comments on commit 7e806fa

Please sign in to comment.