From: Mika Kukkonen CHECK net/sunrpc/xprt.c [...] net/sunrpc/xprt.c:84:35: warning: marked inline, but without a definition The other warnings come from _user stuff, so I am not touching those. In this particular case the inline in question is only used in one place, so my patch just gets rid of the whole function and puts it into xprt_reserve() and simplifies it a bit (IMHO) in the same time. Signed-off-by: Andrew Morton --- 25-akpm/net/sunrpc/xprt.c | 39 +++++++++++++++++---------------------- 1 files changed, 17 insertions(+), 22 deletions(-) diff -puN net/sunrpc/xprt.c~fix-one-sparse-warning-in-net-sun-xprtc net/sunrpc/xprt.c --- 25/net/sunrpc/xprt.c~fix-one-sparse-warning-in-net-sun-xprtc Fri Jul 2 16:23:31 2004 +++ 25-akpm/net/sunrpc/xprt.c Fri Jul 2 16:23:31 2004 @@ -81,7 +81,6 @@ * Local functions */ static void xprt_request_init(struct rpc_task *, struct rpc_xprt *); -static inline void do_xprt_reserve(struct rpc_task *); static void xprt_disconnect(struct rpc_xprt *); static void xprt_connect_status(struct rpc_task *task); static struct rpc_xprt * xprt_setup(int proto, struct sockaddr_in *ap, @@ -1301,35 +1300,31 @@ xprt_reserve(struct rpc_task *task) { struct rpc_xprt *xprt = task->tk_xprt; - task->tk_status = -EIO; - if (!xprt->shutdown) { - spin_lock(&xprt->xprt_lock); - do_xprt_reserve(task); - spin_unlock(&xprt->xprt_lock); - if (task->tk_rqstp) - del_timer_sync(&xprt->timer); + if (xprt->shutdown) { + task->tk_status = -EIO; + return; } -} - -static inline void -do_xprt_reserve(struct rpc_task *task) -{ - struct rpc_xprt *xprt = task->tk_xprt; - + spin_lock(&xprt->xprt_lock); task->tk_status = 0; - if (task->tk_rqstp) + if (task->tk_rqstp) { + spin_unlock(&xprt->xprt_lock); + del_timer_sync(&xprt->timer); return; + } if (!list_empty(&xprt->free)) { - struct rpc_rqst *req = list_entry(xprt->free.next, struct rpc_rqst, rq_list); + struct rpc_rqst *req = list_entry(xprt->free.next, + struct rpc_rqst, rq_list); + list_del_init(&req->rq_list); task->tk_rqstp = req; xprt_request_init(task, xprt); - return; + } else { + dprintk("RPC: waiting for request slot\n"); + task->tk_status = -EAGAIN; + task->tk_timeout = 0; + rpc_sleep_on(&xprt->backlog, task, NULL, NULL); } - dprintk("RPC: waiting for request slot\n"); - task->tk_status = -EAGAIN; - task->tk_timeout = 0; - rpc_sleep_on(&xprt->backlog, task, NULL, NULL); + spin_unlock(&xprt->xprt_lock); } /* _