From: Johann Lombardi Date: Sun, 27 Jun 2010 05:48:51 +0000 (+0200) Subject: b=23196 quota broadcast crashes with inactive OSC X-Git-Tag: v1_8_3_57~12 X-Git-Url: https://git.whamcloud.com/?a=commitdiff_plain;h=4562d0d6bce898bdc7a784c06b9ad33202ff0aa2;p=fs%2Flustre-release.git 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. --- 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); }