aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--include/linux/sunrpc/svc_xprt.h7
-rw-r--r--net/sunrpc/svc_xprt.c4
2 files changed, 4 insertions, 7 deletions
diff --git a/include/linux/sunrpc/svc_xprt.h b/include/linux/sunrpc/svc_xprt.h
index ce6e4182a5b2..79f6f8f3dc0a 100644
--- a/include/linux/sunrpc/svc_xprt.h
+++ b/include/linux/sunrpc/svc_xprt.h
@@ -63,10 +63,9 @@ struct svc_xprt {
63#define XPT_CHNGBUF 7 /* need to change snd/rcv buf sizes */ 63#define XPT_CHNGBUF 7 /* need to change snd/rcv buf sizes */
64#define XPT_DEFERRED 8 /* deferred request pending */ 64#define XPT_DEFERRED 8 /* deferred request pending */
65#define XPT_OLD 9 /* used for xprt aging mark+sweep */ 65#define XPT_OLD 9 /* used for xprt aging mark+sweep */
66#define XPT_DETACHED 10 /* detached from tempsocks list */ 66#define XPT_LISTENER 10 /* listening endpoint */
67#define XPT_LISTENER 11 /* listening endpoint */ 67#define XPT_CACHE_AUTH 11 /* cache auth info */
68#define XPT_CACHE_AUTH 12 /* cache auth info */ 68#define XPT_LOCAL 12 /* connection from loopback interface */
69#define XPT_LOCAL 13 /* connection from loopback interface */
70 69
71 struct svc_serv *xpt_server; /* service for transport */ 70 struct svc_serv *xpt_server; /* service for transport */
72 atomic_t xpt_reserved; /* space on outq that is rsvd */ 71 atomic_t xpt_reserved; /* space on outq that is rsvd */
diff --git a/net/sunrpc/svc_xprt.c b/net/sunrpc/svc_xprt.c
index c179ca2a5aa4..97a75c17142b 100644
--- a/net/sunrpc/svc_xprt.c
+++ b/net/sunrpc/svc_xprt.c
@@ -884,7 +884,6 @@ static void svc_age_temp_xprts(unsigned long closure)
884 continue; 884 continue;
885 list_del_init(le); 885 list_del_init(le);
886 set_bit(XPT_CLOSE, &xprt->xpt_flags); 886 set_bit(XPT_CLOSE, &xprt->xpt_flags);
887 set_bit(XPT_DETACHED, &xprt->xpt_flags);
888 dprintk("queuing xprt %p for closing\n", xprt); 887 dprintk("queuing xprt %p for closing\n", xprt);
889 888
890 /* a thread will dequeue and close it soon */ 889 /* a thread will dequeue and close it soon */
@@ -924,8 +923,7 @@ static void svc_delete_xprt(struct svc_xprt *xprt)
924 xprt->xpt_ops->xpo_detach(xprt); 923 xprt->xpt_ops->xpo_detach(xprt);
925 924
926 spin_lock_bh(&serv->sv_lock); 925 spin_lock_bh(&serv->sv_lock);
927 if (!test_and_set_bit(XPT_DETACHED, &xprt->xpt_flags)) 926 list_del_init(&xprt->xpt_list);
928 list_del_init(&xprt->xpt_list);
929 WARN_ON_ONCE(!list_empty(&xprt->xpt_ready)); 927 WARN_ON_ONCE(!list_empty(&xprt->xpt_ready));
930 if (test_bit(XPT_TEMP, &xprt->xpt_flags)) 928 if (test_bit(XPT_TEMP, &xprt->xpt_flags))
931 serv->sv_tmpcnt--; 929 serv->sv_tmpcnt--;