Skip to content

Commit

Permalink
mptcp: remove mptcp_read_actor
Browse files Browse the repository at this point in the history
Only used to discard stale data from the subflow, so move
it where needed.

Signed-off-by: Florian Westphal <fw@strlen.de>
Reviewed-by: Mat Martineau <mathew.j.martineau@linux.intel.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
  • Loading branch information
Florian Westphal authored and David S. Miller committed Feb 27, 2020
1 parent 600911f commit bfae9da
Show file tree
Hide file tree
Showing 3 changed files with 13 additions and 39 deletions.
27 changes: 0 additions & 27 deletions net/mptcp/protocol.c
Original file line number Diff line number Diff line change
Expand Up @@ -430,33 +430,6 @@ static int mptcp_sendmsg(struct sock *sk, struct msghdr *msg, size_t len)
return ret;
}

int mptcp_read_actor(read_descriptor_t *desc, struct sk_buff *skb,
unsigned int offset, size_t len)
{
struct mptcp_read_arg *arg = desc->arg.data;
size_t copy_len;

copy_len = min(desc->count, len);

if (likely(arg->msg)) {
int err;

err = skb_copy_datagram_msg(skb, offset, arg->msg, copy_len);
if (err) {
pr_debug("error path");
desc->error = err;
return err;
}
} else {
pr_debug("Flushing skb payload");
}

desc->count -= copy_len;

pr_debug("consumed %zu bytes, %zu left", copy_len, desc->count);
return copy_len;
}

static void mptcp_wait_data(struct sock *sk, long *timeo)
{
DEFINE_WAIT_FUNC(wait, woken_wake_function);
Expand Down
7 changes: 0 additions & 7 deletions net/mptcp/protocol.h
Original file line number Diff line number Diff line change
Expand Up @@ -191,13 +191,6 @@ void mptcp_proto_init(void);
int mptcp_proto_v6_init(void);
#endif

struct mptcp_read_arg {
struct msghdr *msg;
};

int mptcp_read_actor(read_descriptor_t *desc, struct sk_buff *skb,
unsigned int offset, size_t len);

void mptcp_get_options(const struct sk_buff *skb,
struct tcp_options_received *opt_rx);

Expand Down
18 changes: 13 additions & 5 deletions net/mptcp/subflow.c
Original file line number Diff line number Diff line change
Expand Up @@ -408,6 +408,18 @@ static enum mapping_status get_mapping_status(struct sock *ssk)
return MAPPING_OK;
}

static int subflow_read_actor(read_descriptor_t *desc,
struct sk_buff *skb,
unsigned int offset, size_t len)
{
size_t copy_len = min(desc->count, len);

desc->count -= copy_len;

pr_debug("flushed %zu bytes, %zu left", copy_len, desc->count);
return copy_len;
}

static bool subflow_check_data_avail(struct sock *ssk)
{
struct mptcp_subflow_context *subflow = mptcp_subflow_ctx(ssk);
Expand Down Expand Up @@ -482,16 +494,12 @@ static bool subflow_check_data_avail(struct sock *ssk)
pr_debug("discarding %zu bytes, current map len=%d", delta,
map_remaining);
if (delta) {
struct mptcp_read_arg arg = {
.msg = NULL,
};
read_descriptor_t desc = {
.count = delta,
.arg.data = &arg,
};
int ret;

ret = tcp_read_sock(ssk, &desc, mptcp_read_actor);
ret = tcp_read_sock(ssk, &desc, subflow_read_actor);
if (ret < 0) {
ssk->sk_err = -ret;
goto fatal;
Expand Down

0 comments on commit bfae9da

Please sign in to comment.