pop_ctxt(&saved, &obd->obd_lvfs_ctxt, NULL);
rc = target_quotacheck_callback(exp, oqctl);
+ class_export_put(exp);
atomic_inc(qta->qta_sem);
}
}
+ /* we get ref for exp because target_quotacheck_callback() will use this
+ * export later b=18126 */
+ class_export_get(exp);
rc = kernel_thread(target_quotacheck_thread, qta, CLONE_VM|CLONE_FILES);
if (rc >= 0) {
CDEBUG(D_INFO, "%s: target_quotacheck_thread: %d\n",
RETURN(0);
}
+ class_export_put(exp);
CERROR("%s: error starting quotacheck_thread: %d\n",
obd->obd_name, rc);
OBD_FREE_PTR(qta);
ENTRY;
for (i = 0; i < lov->desc.ld_tgt_count; i++) {
- int err;
-
if (!lov->lov_tgts[i] || !lov->lov_tgts[i]->ltd_active) {
CERROR("lov idx %d inactive\n", i);
RETURN(-EIO);
}
+ }
+
+ for (i = 0; i < lov->desc.ld_tgt_count; i++) {
+ int err;
err = obd_quotacheck(lov->lov_tgts[i]->ltd_exp, oqctl);
if (err && !rc)