From 85c690719344c863a89b9fee9b92d762b2bb6c43 Mon Sep 17 00:00:00 2001 From: shaver Date: Tue, 5 Nov 2002 18:37:28 +0000 Subject: [PATCH 1/1] - Fix up c_recovd_data list_head management, to avoid NULL dereferences in recovd_conn_manage (bug 338). --- lustre/ptlrpc/recovd.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lustre/ptlrpc/recovd.c b/lustre/ptlrpc/recovd.c index 5edef0c..e216424 100644 --- a/lustre/ptlrpc/recovd.c +++ b/lustre/ptlrpc/recovd.c @@ -68,7 +68,7 @@ void recovd_conn_manage(struct ptlrpc_connection *conn, conn, conn->c_remote_uuid, rd->rd_recovd, rd->rd_recover, recovd, recover); spin_lock(&rd->rd_recovd->recovd_lock); - list_del(&rd->rd_managed_chain); + list_del_init(&rd->rd_managed_chain); spin_unlock(&rd->rd_recovd->recovd_lock); } @@ -93,9 +93,9 @@ void recovd_conn_unmanage(struct ptlrpc_connection *conn) if (recovd) { spin_lock(&recovd->recovd_lock); - list_del(&rd->rd_managed_chain); - spin_unlock(&recovd->recovd_lock); + list_del_init(&rd->rd_managed_chain); rd->rd_recovd = NULL; + spin_unlock(&recovd->recovd_lock); } /* should be safe enough, right? */ rd->rd_recover = NULL; -- 1.8.3.1