diff --git a/lustre/ChangeLog b/lustre/ChangeLog
index 57c7806ad70aff944585afe8aebfd6c1b2c7ef0f..fd07e8434dc7d1915ec24632607a37a107c920ab 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 3fbfc44ffe2d15d965471344c0990f8e12cfec31..59cfe9799e9ec7ebfe154b0c399d8f77724709e8 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);
         }