Skip to content

Commit d75e490

Browse files
committed
SUNRPC: change svc_xprt::xpt_flags bits to enum
When a sequence of numbers are needed for internal-use only, an enum is typically best. The sequence will inevitably need to be changed one day, and having an enum means the developer doesn't need to think about renumbering after insertion or deletion. Such patches will be easier to review. Suggested-by: NeilBrown <neilb@suse.de> Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
1 parent a6b4ec3 commit d75e490

File tree

2 files changed

+56
-35
lines changed

2 files changed

+56
-35
lines changed

include/linux/sunrpc/svc_xprt.h

Lines changed: 21 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -56,23 +56,6 @@ struct svc_xprt {
5656
struct list_head xpt_list;
5757
struct list_head xpt_ready;
5858
unsigned long xpt_flags;
59-
#define XPT_BUSY 0 /* enqueued/receiving */
60-
#define XPT_CONN 1 /* conn pending */
61-
#define XPT_CLOSE 2 /* dead or dying */
62-
#define XPT_DATA 3 /* data pending */
63-
#define XPT_TEMP 4 /* connected transport */
64-
#define XPT_DEAD 6 /* transport closed */
65-
#define XPT_CHNGBUF 7 /* need to change snd/rcv buf sizes */
66-
#define XPT_DEFERRED 8 /* deferred request pending */
67-
#define XPT_OLD 9 /* used for xprt aging mark+sweep */
68-
#define XPT_LISTENER 10 /* listening endpoint */
69-
#define XPT_CACHE_AUTH 11 /* cache auth info */
70-
#define XPT_LOCAL 12 /* connection from loopback interface */
71-
#define XPT_KILL_TEMP 13 /* call xpo_kill_temp_xprt before closing */
72-
#define XPT_CONG_CTRL 14 /* has congestion control */
73-
#define XPT_HANDSHAKE 15 /* xprt requests a handshake */
74-
#define XPT_TLS_SESSION 16 /* transport-layer security established */
75-
#define XPT_PEER_AUTH 17 /* peer has been authenticated */
7659

7760
struct svc_serv *xpt_server; /* service for transport */
7861
atomic_t xpt_reserved; /* space on outq that is rsvd */
@@ -97,6 +80,27 @@ struct svc_xprt {
9780
struct rpc_xprt_switch *xpt_bc_xps; /* NFSv4.1 backchannel */
9881
};
9982

83+
/* flag bits for xpt_flags */
84+
enum {
85+
XPT_BUSY, /* enqueued/receiving */
86+
XPT_CONN, /* conn pending */
87+
XPT_CLOSE, /* dead or dying */
88+
XPT_DATA, /* data pending */
89+
XPT_TEMP, /* connected transport */
90+
XPT_DEAD, /* transport closed */
91+
XPT_CHNGBUF, /* need to change snd/rcv buf sizes */
92+
XPT_DEFERRED, /* deferred request pending */
93+
XPT_OLD, /* used for xprt aging mark+sweep */
94+
XPT_LISTENER, /* listening endpoint */
95+
XPT_CACHE_AUTH, /* cache auth info */
96+
XPT_LOCAL, /* connection from loopback interface */
97+
XPT_KILL_TEMP, /* call xpo_kill_temp_xprt before closing */
98+
XPT_CONG_CTRL, /* has congestion control */
99+
XPT_HANDSHAKE, /* xprt requests a handshake */
100+
XPT_TLS_SESSION, /* transport-layer security established */
101+
XPT_PEER_AUTH, /* peer has been authenticated */
102+
};
103+
100104
static inline void unregister_xpt_user(struct svc_xprt *xpt, struct svc_xpt_user *u)
101105
{
102106
spin_lock(&xpt->xpt_lock);

include/trace/events/sunrpc.h

Lines changed: 35 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1918,25 +1918,42 @@ TRACE_EVENT(svc_stats_latency,
19181918
__get_str(procedure), __entry->execute)
19191919
);
19201920

1921+
/*
1922+
* from include/linux/sunrpc/svc_xprt.h
1923+
*/
1924+
#define SVC_XPRT_FLAG_LIST \
1925+
svc_xprt_flag(BUSY) \
1926+
svc_xprt_flag(CONN) \
1927+
svc_xprt_flag(CLOSE) \
1928+
svc_xprt_flag(DATA) \
1929+
svc_xprt_flag(TEMP) \
1930+
svc_xprt_flag(DEAD) \
1931+
svc_xprt_flag(CHNGBUF) \
1932+
svc_xprt_flag(DEFERRED) \
1933+
svc_xprt_flag(OLD) \
1934+
svc_xprt_flag(LISTENER) \
1935+
svc_xprt_flag(CACHE_AUTH) \
1936+
svc_xprt_flag(LOCAL) \
1937+
svc_xprt_flag(KILL_TEMP) \
1938+
svc_xprt_flag(CONG_CTRL) \
1939+
svc_xprt_flag(HANDSHAKE) \
1940+
svc_xprt_flag(TLS_SESSION) \
1941+
svc_xprt_flag_end(PEER_AUTH)
1942+
1943+
#undef svc_xprt_flag
1944+
#undef svc_xprt_flag_end
1945+
#define svc_xprt_flag(x) TRACE_DEFINE_ENUM(XPT_##x);
1946+
#define svc_xprt_flag_end(x) TRACE_DEFINE_ENUM(XPT_##x);
1947+
1948+
SVC_XPRT_FLAG_LIST
1949+
1950+
#undef svc_xprt_flag
1951+
#undef svc_xprt_flag_end
1952+
#define svc_xprt_flag(x) { BIT(XPT_##x), #x },
1953+
#define svc_xprt_flag_end(x) { BIT(XPT_##x), #x }
1954+
19211955
#define show_svc_xprt_flags(flags) \
1922-
__print_flags(flags, "|", \
1923-
{ BIT(XPT_BUSY), "BUSY" }, \
1924-
{ BIT(XPT_CONN), "CONN" }, \
1925-
{ BIT(XPT_CLOSE), "CLOSE" }, \
1926-
{ BIT(XPT_DATA), "DATA" }, \
1927-
{ BIT(XPT_TEMP), "TEMP" }, \
1928-
{ BIT(XPT_DEAD), "DEAD" }, \
1929-
{ BIT(XPT_CHNGBUF), "CHNGBUF" }, \
1930-
{ BIT(XPT_DEFERRED), "DEFERRED" }, \
1931-
{ BIT(XPT_OLD), "OLD" }, \
1932-
{ BIT(XPT_LISTENER), "LISTENER" }, \
1933-
{ BIT(XPT_CACHE_AUTH), "CACHE_AUTH" }, \
1934-
{ BIT(XPT_LOCAL), "LOCAL" }, \
1935-
{ BIT(XPT_KILL_TEMP), "KILL_TEMP" }, \
1936-
{ BIT(XPT_CONG_CTRL), "CONG_CTRL" }, \
1937-
{ BIT(XPT_HANDSHAKE), "HANDSHAKE" }, \
1938-
{ BIT(XPT_TLS_SESSION), "TLS_SESSION" }, \
1939-
{ BIT(XPT_PEER_AUTH), "PEER_AUTH" })
1956+
__print_flags(flags, "|", SVC_XPRT_FLAG_LIST)
19401957

19411958
TRACE_EVENT(svc_xprt_create_err,
19421959
TP_PROTO(

0 commit comments

Comments
 (0)