Skip to content

Commit 277e4ab

Browse files
author
Trond Myklebust
committed
SUNRPC: Simplify TCP receive code by switching to using iterators
Most of this code should also be reusable with other socket types. Signed-off-by: Trond Myklebust <trond.myklebust@hammerspace.com>
1 parent 9d96acb commit 277e4ab

File tree

3 files changed

+338
-393
lines changed

3 files changed

+338
-393
lines changed

include/linux/sunrpc/xprtsock.h

Lines changed: 4 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -31,15 +31,16 @@ struct sock_xprt {
3131
* State of TCP reply receive
3232
*/
3333
struct {
34-
__be32 fraghdr,
34+
struct {
35+
__be32 fraghdr,
3536
xid,
3637
calldir;
38+
} __attribute__((packed));
3739

3840
u32 offset,
3941
len;
4042

41-
unsigned long copied,
42-
flags;
43+
unsigned long copied;
4344
} recv;
4445

4546
/*
@@ -76,21 +77,9 @@ struct sock_xprt {
7677
void (*old_error_report)(struct sock *);
7778
};
7879

79-
/*
80-
* TCP receive state flags
81-
*/
82-
#define TCP_RCV_LAST_FRAG (1UL << 0)
83-
#define TCP_RCV_COPY_FRAGHDR (1UL << 1)
84-
#define TCP_RCV_COPY_XID (1UL << 2)
85-
#define TCP_RCV_COPY_DATA (1UL << 3)
86-
#define TCP_RCV_READ_CALLDIR (1UL << 4)
87-
#define TCP_RCV_COPY_CALLDIR (1UL << 5)
88-
8980
/*
9081
* TCP RPC flags
9182
*/
92-
#define TCP_RPC_REPLY (1UL << 6)
93-
9483
#define XPRT_SOCK_CONNECTING 1U
9584
#define XPRT_SOCK_DATA_READY (2)
9685
#define XPRT_SOCK_UPD_TIMEOUT (3)

include/trace/events/sunrpc.h

Lines changed: 1 addition & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -497,16 +497,6 @@ TRACE_EVENT(xs_tcp_data_ready,
497497
__get_str(port), __entry->err, __entry->total)
498498
);
499499

500-
#define rpc_show_sock_xprt_flags(flags) \
501-
__print_flags(flags, "|", \
502-
{ TCP_RCV_LAST_FRAG, "TCP_RCV_LAST_FRAG" }, \
503-
{ TCP_RCV_COPY_FRAGHDR, "TCP_RCV_COPY_FRAGHDR" }, \
504-
{ TCP_RCV_COPY_XID, "TCP_RCV_COPY_XID" }, \
505-
{ TCP_RCV_COPY_DATA, "TCP_RCV_COPY_DATA" }, \
506-
{ TCP_RCV_READ_CALLDIR, "TCP_RCV_READ_CALLDIR" }, \
507-
{ TCP_RCV_COPY_CALLDIR, "TCP_RCV_COPY_CALLDIR" }, \
508-
{ TCP_RPC_REPLY, "TCP_RPC_REPLY" })
509-
510500
TRACE_EVENT(xs_tcp_data_recv,
511501
TP_PROTO(struct sock_xprt *xs),
512502

@@ -516,7 +506,6 @@ TRACE_EVENT(xs_tcp_data_recv,
516506
__string(addr, xs->xprt.address_strings[RPC_DISPLAY_ADDR])
517507
__string(port, xs->xprt.address_strings[RPC_DISPLAY_PORT])
518508
__field(u32, xid)
519-
__field(unsigned long, flags)
520509
__field(unsigned long, copied)
521510
__field(unsigned int, reclen)
522511
__field(unsigned long, offset)
@@ -526,15 +515,13 @@ TRACE_EVENT(xs_tcp_data_recv,
526515
__assign_str(addr, xs->xprt.address_strings[RPC_DISPLAY_ADDR]);
527516
__assign_str(port, xs->xprt.address_strings[RPC_DISPLAY_PORT]);
528517
__entry->xid = be32_to_cpu(xs->recv.xid);
529-
__entry->flags = xs->recv.flags;
530518
__entry->copied = xs->recv.copied;
531519
__entry->reclen = xs->recv.len;
532520
__entry->offset = xs->recv.offset;
533521
),
534522

535-
TP_printk("peer=[%s]:%s xid=0x%08x flags=%s copied=%lu reclen=%u offset=%lu",
523+
TP_printk("peer=[%s]:%s xid=0x%08x copied=%lu reclen=%u offset=%lu",
536524
__get_str(addr), __get_str(port), __entry->xid,
537-
rpc_show_sock_xprt_flags(__entry->flags),
538525
__entry->copied, __entry->reclen, __entry->offset)
539526
);
540527

0 commit comments

Comments
 (0)