From b4a291946c02d6b7cd1f42a70579e4a1a07a0c06 Mon Sep 17 00:00:00 2001 From: Oleg Drokin Date: Sat, 13 Oct 2012 12:51:35 -0400 Subject: [PATCH] LU-2167 ptlrpc: Fix use after free in ptlrpcd on termination Should not use pc after signalling completion of its use since it will be freed later. Change-Id: Id20e8d188fea77f23a52e9a374e7e5e84fe3ad4b Signed-off-by: Oleg Drokin Reviewed-on: http://review.whamcloud.com/4264 Tested-by: Hudson Tested-by: Maloo Reviewed-by: Fan Yong Reviewed-by: Jinshan Xiong --- lustre/ptlrpc/ptlrpcd.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/lustre/ptlrpc/ptlrpcd.c b/lustre/ptlrpc/ptlrpcd.c index fbb03b2..861e3cd 100644 --- a/lustre/ptlrpc/ptlrpcd.c +++ b/lustre/ptlrpc/ptlrpcd.c @@ -477,12 +477,14 @@ static int ptlrpcd(void *arg) if (!cfs_list_empty(&set->set_requests)) ptlrpc_set_wait(set); lu_context_fini(&env.le_ctx); - cfs_complete(&pc->pc_finishing); cfs_clear_bit(LIOD_START, &pc->pc_flags); cfs_clear_bit(LIOD_STOP, &pc->pc_flags); cfs_clear_bit(LIOD_FORCE, &pc->pc_flags); cfs_clear_bit(LIOD_BIND, &pc->pc_flags); + + cfs_complete(&pc->pc_finishing); + return 0; } -- 1.8.3.1