X-Git-Url: https://git.whamcloud.com/?a=blobdiff_plain;f=lustre%2Fquota%2Fquota_check.c;h=6732d063b0c21644038d9664c5e14e022b32ce59;hb=9364f1f12c830985b4d262c6a963bc0949facd17;hp=1961e403598b318475f13c11306470814ab9fc73;hpb=f95393b0d0a59cf3dc2f29cffc35dcc4cc9d7728;p=fs%2Flustre-release.git diff --git a/lustre/quota/quota_check.c b/lustre/quota/quota_check.c index 1961e40..6732d06 100644 --- a/lustre/quota/quota_check.c +++ b/lustre/quota/quota_check.c @@ -298,20 +298,32 @@ int lov_quota_check(struct obd_device *unused, struct obd_export *exp, int i, rc = 0; ENTRY; + obd_getref(obd); + for (i = 0; i < lov->desc.ld_tgt_count; i++) { - if (!lov->lov_tgts[i] || !lov->lov_tgts[i]->ltd_active) { + if (!lov->lov_tgts[i]) + continue; + + if (!lov->lov_tgts[i]->ltd_active) { CERROR("lov idx %d inactive\n", i); - RETURN(-EIO); + rc = -EIO; + goto out; } } for (i = 0; i < lov->desc.ld_tgt_count; i++) { int err; + if (!lov->lov_tgts[i]) + continue; + err = obd_quotacheck(lov->lov_tgts[i]->ltd_exp, oqctl); if (err && !rc) rc = err; } +out: + obd_putref(obd); + RETURN(rc); }