From d6025df5ecea205c0c9665b035d74a1a03b88174 Mon Sep 17 00:00:00 2001 From: Fan Yong Date: Mon, 8 Oct 2012 13:44:19 +0800 Subject: [PATCH] LU-1842 oi: handle failure cases for osd_oi_fini Sometimes the osd_oi_fini() may be called without osd_oi_init() called firstly, or with osd_oi_init() failure. Under such cases, the osd_device::od_oi_table may be invalid, so just skip related OI cleanup. Signed-off-by: Fan Yong Change-Id: Iffa008b29bb8763fcdc4d12c1e4cae93026a25b3 Reviewed-on: http://review.whamcloud.com/4219 Reviewed-by: Johann Lombardi Tested-by: Hudson Reviewed-by: James Simmons Tested-by: Maloo --- lustre/osd-ldiskfs/osd_oi.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/lustre/osd-ldiskfs/osd_oi.c b/lustre/osd-ldiskfs/osd_oi.c index d24ec33..29e7b92 100644 --- a/lustre/osd-ldiskfs/osd_oi.c +++ b/lustre/osd-ldiskfs/osd_oi.c @@ -419,6 +419,9 @@ out: void osd_oi_fini(struct osd_thread_info *info, struct osd_device *osd) { + if (unlikely(osd->od_oi_table == NULL)) + return; + osd_oi_table_put(info, osd->od_oi_table, osd->od_oi_count); OBD_FREE(osd->od_oi_table, -- 1.8.3.1