Whamcloud - gitweb
LU-234 OOM killer causes node hang.
authoryangsheng <ys@whamcloud.com>
Fri, 22 Apr 2011 21:28:44 +0000 (05:28 +0800)
committerJohann Lombardi <johann@whamcloud.com>
Fri, 20 May 2011 08:35:57 +0000 (01:35 -0700)
b=18213 Handle the signal to avoid process hang.

Previous patch may cause a memleak. And also release the request when
ldlm_cli_enqueue() failed.

Signed-off-by: Yang Sheng <ys@whamcloud.com>
Change-Id: I1c22e2b2027f61af257ce031cfb7b6cbe08b8141
Reviewed-on: http://review.whamcloud.com/457
Tested-by: Hudson
Reviewed-by: Johann Lombardi <johann@whamcloud.com>
Reviewed-by: Fan Yong <yong.fan@whamcloud.com>
lustre/mdc/mdc_locks.c

index cdc7fe9..730fc7b 100644 (file)
@@ -949,12 +949,15 @@ int mdc_intent_getattr_async(struct obd_export *exp,
                 RETURN(-ENOMEM);
 
         rc = mdc_enter_request(&obddev->u.cli);
-        if (rc)
+        if (rc) {
+                ptlrpc_req_finished(req);
                 RETURN(rc);
+        }
         rc = ldlm_cli_enqueue(exp, &req, einfo, res_id, &policy, &flags, NULL,
                               0, NULL, &minfo->mi_lockh, 1);
         if (rc < 0) {
                 mdc_exit_request(&obddev->u.cli);
+                ptlrpc_req_finished(req);
                 RETURN(rc);
         }