svc_xprt.c (f85142af36415cdd5be59eb4b00a231c8b6dcb49) svc_xprt.c (e844d307d46cfa7e09cdb671941bfd5f1be86773)
1// SPDX-License-Identifier: GPL-2.0-only
2/*
3 * linux/net/sunrpc/svc_xprt.c
4 *
5 * Author: Tom Tucker <tom@opengridcomputing.com>
6 */
7
8#include <linux/sched.h>

--- 125 unchanged lines hidden (view full) ---

134 len += slen;
135 strcat(buf, tmpstr);
136 }
137 spin_unlock(&svc_xprt_class_lock);
138
139 return len;
140}
141
1// SPDX-License-Identifier: GPL-2.0-only
2/*
3 * linux/net/sunrpc/svc_xprt.c
4 *
5 * Author: Tom Tucker <tom@opengridcomputing.com>
6 */
7
8#include <linux/sched.h>

--- 125 unchanged lines hidden (view full) ---

134 len += slen;
135 strcat(buf, tmpstr);
136 }
137 spin_unlock(&svc_xprt_class_lock);
138
139 return len;
140}
141
142/**
143 * svc_xprt_deferred_close - Close a transport
144 * @xprt: transport instance
145 *
146 * Used in contexts that need to defer the work of shutting down
147 * the transport to an nfsd thread.
148 */
149void svc_xprt_deferred_close(struct svc_xprt *xprt)
150{
151 if (!test_and_set_bit(XPT_CLOSE, &xprt->xpt_flags))
152 svc_xprt_enqueue(xprt);
153}
154EXPORT_SYMBOL_GPL(svc_xprt_deferred_close);
155
142static void svc_xprt_free(struct kref *kref)
143{
144 struct svc_xprt *xprt =
145 container_of(kref, struct svc_xprt, xpt_ref);
146 struct module *owner = xprt->xpt_class->xcl_owner;
147 if (test_bit(XPT_CACHE_AUTH, &xprt->xpt_flags))
148 svcauth_unix_info_release(xprt);
149 put_cred(xprt->xpt_cred);

--- 1284 unchanged lines hidden ---
156static void svc_xprt_free(struct kref *kref)
157{
158 struct svc_xprt *xprt =
159 container_of(kref, struct svc_xprt, xpt_ref);
160 struct module *owner = xprt->xpt_class->xcl_owner;
161 if (test_bit(XPT_CACHE_AUTH, &xprt->xpt_flags))
162 svcauth_unix_info_release(xprt);
163 put_cred(xprt->xpt_cred);

--- 1284 unchanged lines hidden ---