SUNRPC: change svc_xprt::xpt_flags bits to enum
authorChuck Lever <chuck.lever@oracle.com>
Sat, 29 Jul 2023 18:36:10 +0000 (14:36 -0400)
committerChuck Lever <chuck.lever@oracle.com>
Tue, 29 Aug 2023 21:45:22 +0000 (17:45 -0400)
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>
include/linux/sunrpc/svc_xprt.h
include/trace/events/sunrpc.h

index a6b1263..fa55d12 100644 (file)
@@ -56,23 +56,6 @@ struct svc_xprt {
        struct list_head        xpt_list;
        struct list_head        xpt_ready;
        unsigned long           xpt_flags;
-#define        XPT_BUSY        0               /* enqueued/receiving */
-#define        XPT_CONN        1               /* conn pending */
-#define        XPT_CLOSE       2               /* dead or dying */
-#define        XPT_DATA        3               /* data pending */
-#define        XPT_TEMP        4               /* connected transport */
-#define        XPT_DEAD        6               /* transport closed */
-#define        XPT_CHNGBUF     7               /* need to change snd/rcv buf sizes */
-#define        XPT_DEFERRED    8               /* deferred request pending */
-#define        XPT_OLD         9               /* used for xprt aging mark+sweep */
-#define XPT_LISTENER   10              /* listening endpoint */
-#define XPT_CACHE_AUTH 11              /* cache auth info */
-#define XPT_LOCAL      12              /* connection from loopback interface */
-#define XPT_KILL_TEMP   13             /* call xpo_kill_temp_xprt before closing */
-#define XPT_CONG_CTRL  14              /* has congestion control */
-#define XPT_HANDSHAKE  15              /* xprt requests a handshake */
-#define XPT_TLS_SESSION        16              /* transport-layer security established */
-#define XPT_PEER_AUTH  17              /* peer has been authenticated */
 
        struct svc_serv         *xpt_server;    /* service for transport */
        atomic_t                xpt_reserved;   /* space on outq that is rsvd */
@@ -97,6 +80,27 @@ struct svc_xprt {
        struct rpc_xprt_switch  *xpt_bc_xps;    /* NFSv4.1 backchannel */
 };
 
+/* flag bits for xpt_flags */
+enum {
+       XPT_BUSY,               /* enqueued/receiving */
+       XPT_CONN,               /* conn pending */
+       XPT_CLOSE,              /* dead or dying */
+       XPT_DATA,               /* data pending */
+       XPT_TEMP,               /* connected transport */
+       XPT_DEAD,               /* transport closed */
+       XPT_CHNGBUF,            /* need to change snd/rcv buf sizes */
+       XPT_DEFERRED,           /* deferred request pending */
+       XPT_OLD,                /* used for xprt aging mark+sweep */
+       XPT_LISTENER,           /* listening endpoint */
+       XPT_CACHE_AUTH,         /* cache auth info */
+       XPT_LOCAL,              /* connection from loopback interface */
+       XPT_KILL_TEMP,          /* call xpo_kill_temp_xprt before closing */
+       XPT_CONG_CTRL,          /* has congestion control */
+       XPT_HANDSHAKE,          /* xprt requests a handshake */
+       XPT_TLS_SESSION,        /* transport-layer security established */
+       XPT_PEER_AUTH,          /* peer has been authenticated */
+};
+
 static inline void unregister_xpt_user(struct svc_xprt *xpt, struct svc_xpt_user *u)
 {
        spin_lock(&xpt->xpt_lock);
index 4371175..00db9e1 100644 (file)
@@ -1918,25 +1918,42 @@ TRACE_EVENT(svc_stats_latency,
                __get_str(procedure), __entry->execute)
 );
 
+/*
+ * from include/linux/sunrpc/svc_xprt.h
+ */
+#define SVC_XPRT_FLAG_LIST                                             \
+       svc_xprt_flag(BUSY)                                             \
+       svc_xprt_flag(CONN)                                             \
+       svc_xprt_flag(CLOSE)                                            \
+       svc_xprt_flag(DATA)                                             \
+       svc_xprt_flag(TEMP)                                             \
+       svc_xprt_flag(DEAD)                                             \
+       svc_xprt_flag(CHNGBUF)                                          \
+       svc_xprt_flag(DEFERRED)                                         \
+       svc_xprt_flag(OLD)                                              \
+       svc_xprt_flag(LISTENER)                                         \
+       svc_xprt_flag(CACHE_AUTH)                                       \
+       svc_xprt_flag(LOCAL)                                            \
+       svc_xprt_flag(KILL_TEMP)                                        \
+       svc_xprt_flag(CONG_CTRL)                                        \
+       svc_xprt_flag(HANDSHAKE)                                        \
+       svc_xprt_flag(TLS_SESSION)                                      \
+       svc_xprt_flag_end(PEER_AUTH)
+
+#undef svc_xprt_flag
+#undef svc_xprt_flag_end
+#define svc_xprt_flag(x)       TRACE_DEFINE_ENUM(XPT_##x);
+#define svc_xprt_flag_end(x)   TRACE_DEFINE_ENUM(XPT_##x);
+
+SVC_XPRT_FLAG_LIST
+
+#undef svc_xprt_flag
+#undef svc_xprt_flag_end
+#define svc_xprt_flag(x)       { BIT(XPT_##x), #x },
+#define svc_xprt_flag_end(x)   { BIT(XPT_##x), #x }
+
 #define show_svc_xprt_flags(flags)                                     \
-       __print_flags(flags, "|",                                       \
-               { BIT(XPT_BUSY),                "BUSY" },               \
-               { BIT(XPT_CONN),                "CONN" },               \
-               { BIT(XPT_CLOSE),               "CLOSE" },              \
-               { BIT(XPT_DATA),                "DATA" },               \
-               { BIT(XPT_TEMP),                "TEMP" },               \
-               { BIT(XPT_DEAD),                "DEAD" },               \
-               { BIT(XPT_CHNGBUF),             "CHNGBUF" },            \
-               { BIT(XPT_DEFERRED),            "DEFERRED" },           \
-               { BIT(XPT_OLD),                 "OLD" },                \
-               { BIT(XPT_LISTENER),            "LISTENER" },           \
-               { BIT(XPT_CACHE_AUTH),          "CACHE_AUTH" },         \
-               { BIT(XPT_LOCAL),               "LOCAL" },              \
-               { BIT(XPT_KILL_TEMP),           "KILL_TEMP" },          \
-               { BIT(XPT_CONG_CTRL),           "CONG_CTRL" },          \
-               { BIT(XPT_HANDSHAKE),           "HANDSHAKE" },          \
-               { BIT(XPT_TLS_SESSION),         "TLS_SESSION" },        \
-               { BIT(XPT_PEER_AUTH),           "PEER_AUTH" })
+       __print_flags(flags, "|", SVC_XPRT_FLAG_LIST)
 
 TRACE_EVENT(svc_xprt_create_err,
        TP_PROTO(