[PATCH 3/3] Return errors in bc_send<br>
Andy
Andy
Fri May 25 12:38:41 EDT 2007
<br>
Release the request and task upon allocation errors.<br>
<br>
Don't just return zero, return the send_request return value.<br>
---<br>
net/sunrpc/bc_svc.c | 14 +++++++++-----<span class="q"><br>
1 files changed, 9 insertions(+), 5 deletions(-)<br>
<br>
diff --git a/net/sunrpc/bc_svc.c b/net/sunrpc/bc_svc.c<br></span>
index c713f05..a9be1b4 100644<span class="q"><br>
--- a/net/sunrpc/bc_svc.c<br>
+++ b/net/sunrpc/bc_svc.c<br></span>
@@ -131,7 +131,7 @@ void bc_release_xprt(struct rpc_task *task)<span class="q"><br>
int bc_send(struct rpc_rqst *req)<br></span>
{<br>
struct rpc_task *bc_task;<br>
- int err;<br>
+ int err = -ENOMEM;<br>
struct xdr_buf *xbufp = &req->rq_snd_buf;<br>
struct rpc_xprt *xprt = req->rq_xprt;<br>
<br>
@@ -139,13 +139,15 @@ int bc_send(struct rpc_rqst *req)<span class="q"><br>
* Create an rpc_task to send the data<br>
*/<br>
bc_task = bc_alloc_task(req);<br>
+ if (!bc_task)<br></span>
+ goto out_free_req;<span class="q"><br>
<br>
/*<br>
* Reserve the xprt and then try to send the request across<br></span>
*/<br>
err = bc_reserve_xprt(bc_task);<br>
if (err)<br>
- goto out;<br>
+ goto out_free_task;<br>
<br>
/*<br>
* Set up the xdr_buf length<br>
@@ -156,12 +158,14 @@ int bc_send(struct rpc_rqst *req)<br>
<br>
bc_release_xprt(bc_task);<br>
<br>
+out_free_req:<span class="q"><br>
xprt_free_bc_request(req);<br></span>
- return 0;<br>
-out:<br>
+ return err;<br>
+<br>
+out_free_task:<span class="q"><br>
bc_task->tk_rqstp = NULL;<br>
bc_release_task(bc_task);<br></span>
- return err;<br>
+ goto out_free_req;<br>
}<br>
<br>
/*<br>
-- <div><span class="e" id="q_112c426ec490c67d_24"><br>
<br>
<br>
<br><br><div><span class="gmail_quote">On 5/24/07, <b class="gmail_sendername">Iyer, Rahul</b> <<a href="mailto:Rahul.Iyer at netapp.com" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">Rahul.Iyer at netapp.com
</a>> wrote:</span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<br>My bad. I see it now.<br>Regards<br>Rahul<br><br>> -----Original Message-----<br>> From: Benny Halevy [mailto:<a href="mailto:bhalevy at panasas.com" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">
bhalevy at panasas.com</a>]<br>> Sent: Thursday, May 24, 2007 9:07 AM
<br>> To: undisclosed-recipients<br>> Subject: [pnfs] [PATCH 2/2] bc_send: handle error from bc_alloc_task<br>><br>> >From 3ad9cc52abc6146a4e0714b797feb3473d829e56 Mon Sep 17<br>> 00:00:00 2001<br>> From: Benny Halevy <
<a href="mailto:bhalevy at panasas.com" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">bhalevy at panasas.com</a>><br>> Date: Thu, 24 May 2007 19:07:13 +0300<br>> Subject: [PATCH 2/2] bc_send: handle error from bc_alloc_task
<br>><br>> Signed-off-by: Benny Halevy <
<a href="mailto:bhalevy at panasas.com" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">bhalevy at panasas.com</a>><br>> ---<br>> net/sunrpc/bc_svc.c | 5 +++++<br>> 1 files changed, 5 insertions(+), 0 deletions(-)
<br>><br>> diff --git a/net/sunrpc/bc_svc.c b/net/sunrpc/bc_svc.c
<br>> index fbea284..a8519d5 100644<br>> --- a/net/sunrpc/bc_svc.c<br>> +++ b/net/sunrpc/bc_svc.c<br>> @@ -139,6 +139,10 @@ int bc_send(struct rpc_rqst *req)<br>> * Create an rpc_task to send the data
<br>> */<br>> bc_task = bc_alloc_task(req);<br>> + if (!bc_task) {<br>> + err = -ENOMEM;<br>> + goto out_no_free;<br>> + }<br>><br>> /*<br>> * Reserve the xprt and then try to send the request across
<br>> @@ -158,6 +162,7 @@ int bc_send(struct rpc_rqst *req)<br>> out:<br>> bc_task->tk_rqstp = NULL;<br>> bc_release_task(bc_task);<br>> +out_no_free:<br>> xprt_free_bc_request(req);
<br>> return err;<br>> }<br>> --<br>> 1.5.1<br>><br>> _______________________________________________<br>> pNFS mailing list<br>> <a href="mailto:pNFS at linux-nfs.org" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">
pNFS at linux-nfs.org</a><br>
> <a href="http://linux-nfs.org/cgi-bin/mailman/listinfo/pnfs" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">http://linux-nfs.org/cgi-bin/mailman/listinfo/pnfs</a><br>><br>_______________________________________________
<br>pNFS mailing list<br><a href="mailto:pNFS at linux-nfs.org" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">
pNFS at linux-nfs.org</a><br><a href="http://linux-nfs.org/cgi-bin/mailman/listinfo/pnfs" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">http://linux-nfs.org/cgi-bin/mailman/listinfo/pnfs</a><br><br>
</blockquote></div><br>
</span></div></blockquote></div><br>
------=_Part_128945_432228.1180112266010--
More information about the pNFS
mailing list