b=5949
quickly undo broken stuff before anyone realizes it broke.
med->med_mcd = mcd;
rc = mds_client_add(obd, &obd->u.mds, med, -1);
-
+ if (rc == 0)
+ EXIT;
out:
if (rc) {
- if (mcd) {
- OBD_FREE(mcd, sizeof(*mcd));
- med->med_mcd = NULL;
- }
+ OBD_FREE(mcd, sizeof(*mcd));
class_disconnect(exp);
- } else {
- class_export_put(exp);
}
+ class_export_put(exp);
- RETURN(rc);
+ return rc;
}
static int mds_init_export(struct obd_export *exp)
cleanup:
if (rc) {
- if (fcd) {
+ if (fcd)
OBD_FREE(fcd, sizeof(*fcd));
- fed->fed_fcd = NULL;
- }
class_disconnect(exp);
} else {
class_export_put(exp);
}
-
- RETURN(rc);
+ return rc;
}
/* Do extra sanity checks for grant accounting. We do this at connect,
/* Disconnect early so that clients can't keep using export */
rc = class_disconnect(exp);
+
ldlm_cancel_locks_for_export(exp);
fsfilt_sync(obd, obd->u.filter.fo_sb);