From 4562d0d6bce898bdc7a784c06b9ad33202ff0aa2 Mon Sep 17 00:00:00 2001 From: Johann Lombardi Date: Sun, 27 Jun 2010 07:48:51 +0200 Subject: [PATCH] b=23196 quota broadcast crashes with inactive OSC lov_quota_adjust_qunit() must take a lov reference and check for lov->lov_tgts[i] != NULL when parsing lov->lov_tgts. --- lustre/quota/quota_adjust_qunit.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/lustre/quota/quota_adjust_qunit.c b/lustre/quota/quota_adjust_qunit.c index eeee71e..642ef1c 100644 --- a/lustre/quota/quota_adjust_qunit.c +++ b/lustre/quota/quota_adjust_qunit.c @@ -356,10 +356,11 @@ int lov_quota_adjust_qunit(struct obd_export *exp, RETURN(-EFAULT); } + obd_getref(obd); for (i = 0; i < lov->desc.ld_tgt_count; i++) { int err; - if (!lov->lov_tgts[i]->ltd_active) { + if (!lov->lov_tgts[i] || !lov->lov_tgts[i]->ltd_active) { CDEBUG(D_HA, "ost %d is inactive\n", i); continue; } @@ -372,5 +373,6 @@ int lov_quota_adjust_qunit(struct obd_export *exp, continue; } } + obd_putref(obd); RETURN(rc); } -- 1.8.3.1