From 0d7af2d437b622172c9975f1df9c1720e6f5b4f9 Mon Sep 17 00:00:00 2001 From: yangsheng Date: Sat, 23 Apr 2011 05:28:44 +0800 Subject: [PATCH] LU-234 OOM killer causes node hang. 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 Change-Id: I1c22e2b2027f61af257ce031cfb7b6cbe08b8141 Reviewed-on: http://review.whamcloud.com/457 Tested-by: Hudson Reviewed-by: Johann Lombardi Reviewed-by: Fan Yong --- lustre/mdc/mdc_locks.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/lustre/mdc/mdc_locks.c b/lustre/mdc/mdc_locks.c index cdc7fe9..730fc7b 100644 --- a/lustre/mdc/mdc_locks.c +++ b/lustre/mdc/mdc_locks.c @@ -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); } -- 1.8.3.1