diff --git a/lustre/ChangeLog b/lustre/ChangeLog index cf138eda906b42bbefcf5b31d06a41daafc43ba1..8757d4a0da228882d18f8905d4bdb49f0f2f9c3c 100644 --- a/lustre/ChangeLog +++ b/lustre/ChangeLog @@ -1400,7 +1400,7 @@ Details : It is be possible to send the lock handle along with each read search. Severity : normal -Frequency : only X2 +Frequency : only on Cray X2 Bugzilla : 16813 Description: X2 build failures Details : fix build failures on Cray X2. @@ -1416,6 +1416,12 @@ Bugzilla : 14095 Description: Add lustre_start utility to start or stop multiple Lustre servers from a CSV file. +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. + -------------------------------------------------------------------------------- 2007-08-10 Cluster File Systems, Inc. <info@clusterfs.com> @@ -1817,8 +1823,6 @@ Details : The __iget() symbol export is missing. To avoid the need for for details. * bug fixes - - Severity : enhancement Bugzilla : 8007 Description: MountConf diff --git a/lustre/ptlrpc/service.c b/lustre/ptlrpc/service.c index c362aad0e3300ea2311ee26fe450e94cbf8780e7..20fa81f16cf7eca12cf5bd894d79990bf2490b6b 100644 --- a/lustre/ptlrpc/service.c +++ b/lustre/ptlrpc/service.c @@ -498,7 +498,7 @@ 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); }