Whamcloud - gitweb
b=23196 quota broadcast crashes with inactive OSC
authorJohann Lombardi <johann@sun.com>
Sun, 27 Jun 2010 05:48:51 +0000 (07:48 +0200)
committerjohann <johann@granier.local>
Sun, 27 Jun 2010 05:51:20 +0000 (07:51 +0200)
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

index eeee71e..642ef1c 100644 (file)
@@ -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);
 }