case LCFG_PARAM: {
struct obd_device *obd;
+ ssize_t count;
char *param;
/* Check if it is activate/deactivate mdc
}
- obd = lod2obd(lod);
if (strstr(param, PARAM_LOD) != NULL)
- rc = class_process_proc_param(PARAM_LOD, obd->obd_vars,
- lcfg, obd);
+ count = class_modify_config(lcfg, PARAM_LOD,
+ &lod->lod_dt_dev.dd_kobj);
else
- rc = class_process_proc_param(PARAM_LOV, obd->obd_vars,
- lcfg, obd);
- if (rc > 0)
- rc = 0;
-
+ count = class_modify_config(lcfg, PARAM_LOV,
+ &lod->lod_dt_dev.dd_kobj);
+ rc = count > 0 ? 0 : count;
GOTO(out, rc);
}
case LCFG_PRE_CLEANUP: {
struct dt_device *dt = container_of(kobj, struct dt_device,
dd_kobj);
struct lod_device *lod = dt2lod_dev(dt);
- u32 stripe_count;
+ int stripe_count;
int rc;
- rc = kstrtouint(buffer, 0, &stripe_count);
+ rc = kstrtoint(buffer, 0, &stripe_count);
if (rc)
return rc;
+ if (stripe_count < -1)
+ return -ERANGE;
+
lod_fix_desc_stripe_count(&stripe_count);
lod->lod_desc.ld_default_stripe_count = stripe_count;