From ebce2131e6bb14e7c7c9b2b08b56cb79ed8177a0 Mon Sep 17 00:00:00 2001 From: wangdi Date: Wed, 4 Apr 2012 23:21:31 -0700 Subject: [PATCH] LU-1286 obdclass: oops in lprocfs_remove_nolock Move lov /proc entry cleanup from lov_precleanup to lov_cleanup, so the lov proc entry will be removed after the pool has been removed, otherwise it will cause oops during pool proc entry deletion. Signed-off-by: Di Wang Change-Id: I1d1b03d02348caaa1e421aa1de1535c8cf0ba3f4 Reviewed-on: http://review.whamcloud.com/2450 Tested-by: Hudson Reviewed-by: Andreas Dilger Tested-by: Maloo Reviewed-by: Oleg Drokin --- lustre/lov/lov_obd.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lustre/lov/lov_obd.c b/lustre/lov/lov_obd.c index 1c15eb2..f826c33 100644 --- a/lustre/lov/lov_obd.c +++ b/lustre/lov/lov_obd.c @@ -878,7 +878,6 @@ static int lov_precleanup(struct obd_device *obd, enum obd_cleanup_stage stage) break; } case OBD_CLEANUP_EXPORTS: - lprocfs_obd_cleanup(obd); rc = obd_llog_finish(obd, 0); if (rc != 0) CERROR("failed to cleanup llogging subsystems\n"); @@ -904,6 +903,7 @@ static int lov_cleanup(struct obd_device *obd) lov_ost_pool_free(&(lov->lov_qos.lq_rr.lqr_pool)); lov_ost_pool_free(&lov->lov_packed); + lprocfs_obd_cleanup(obd); if (lov->lov_tgts) { int i; obd_getref(obd); -- 1.8.3.1