From f76e4efc30ed2676bf04130485e0210d821e06b9 Mon Sep 17 00:00:00 2001 From: johann <johann> Date: Tue, 16 Sep 2008 12:09:57 +0000 Subject: [PATCH] Branch b1_6 b=17024 i=shadow i=bobijam Description: Lustre GPF in {:ptlrpc:ptlrpc_server_free_request+373} Details : In case of memory pressure, list_del() can be called twice on req->rq_history_list, causing a kernel oops. --- lustre/ChangeLog | 8 +++++++- lustre/ptlrpc/service.c | 2 +- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/lustre/ChangeLog b/lustre/ChangeLog index 57c7806ad7..fd07e8434d 100644 --- a/lustre/ChangeLog +++ b/lustre/ChangeLog @@ -643,7 +643,7 @@ Details : ptlrpc_at_recv_early_reply() should not modify req->rq_repmsg rq_lock held. Severity : normal -Frequency : only X2 +Frequency : only on Cray X2 Bugzilla : 16813 Description: X2 build failures Details : fix build failures on Cray X2. @@ -655,6 +655,12 @@ Description: oops in statahead Details : Disable statahead on systems with CONFIG_SLUB enabled, until such a time as problem is understood. +Severity : major +Bugzilla : 17024 +Description: Lustre GPF in {:ptlrpc:ptlrpc_server_free_request+373} +Details : In case of memory pressure, list_del() can be called twice on + req->rq_history_list, causing a kernel oops. + ------------------------------------------------------------------------------- diff --git a/lustre/ptlrpc/service.c b/lustre/ptlrpc/service.c index 3fbfc44ffe..59cfe9799e 100644 --- a/lustre/ptlrpc/service.c +++ b/lustre/ptlrpc/service.c @@ -484,7 +484,7 @@ static void ptlrpc_server_free_request(struct ptlrpc_request *req) } else if (req->rq_reply_state && req->rq_reply_state->rs_prealloc) { /* If we are low on memory, we are not interested in history */ - list_del(&req->rq_history_list); + list_del_init(&req->rq_history_list); __ptlrpc_server_free_request(req); } -- GitLab