struct seq_file *m = file->private_data;
struct obd_device *obd = m->private;
struct mdt_device *mdt = mdt_dev(obd->obd_lu_dev);
- int rc, val;
+ int rc;
+ __s64 val;
- rc = lprocfs_write_helper(buffer, count, &val);
+ rc = lprocfs_str_to_s64(buffer, count, &val);
if (rc)
return rc;
+ if (val < 0 || val > INT_MAX)
+ return -ERANGE;
mdt->mdt_identity_cache->uc_entry_expire = val;
+
return count;
}
LPROC_SEQ_FOPS(mdt_identity_expire);
struct seq_file *m = file->private_data;
struct obd_device *obd = m->private;
struct mdt_device *mdt = mdt_dev(obd->obd_lu_dev);
- int rc, val;
+ int rc;
+ __s64 val;
- rc = lprocfs_write_helper(buffer, count, &val);
+ rc = lprocfs_str_to_s64(buffer, count, &val);
if (rc)
return rc;
+ if (val < 0 || val > INT_MAX)
+ return -ERANGE;
mdt->mdt_identity_cache->uc_acquire_expire = val;
+
return count;
}
LPROC_SEQ_FOPS(mdt_identity_acquire_expire);
struct seq_file *m = file->private_data;
struct obd_device *obd = m->private;
struct mdt_device *mdt = mdt_dev(obd->obd_lu_dev);
- int rc, uid;
+ int rc;
+ __s64 uid;
- rc = lprocfs_write_helper(buffer, count, &uid);
+ rc = lprocfs_str_to_s64(buffer, count, &uid);
if (rc)
return rc;
+ if (uid < INT_MIN || uid > INT_MAX)
+ return -ERANGE;
mdt_flush_identity(mdt->mdt_identity_cache, uid);
return count;
struct seq_file *m = file->private_data;
struct obd_device *obd = m->private;
struct mdt_device *mdt = mdt_dev(obd->obd_lu_dev);
- int val, rc;
+ __s64 val;
+ int rc;
- rc = lprocfs_write_helper(buffer, count, &val);
+ rc = lprocfs_str_to_s64(buffer, count, &val);
if (rc)
return rc;
mdt->mdt_opts.mo_evict_tgt_nids = !!val;
struct seq_file *m = file->private_data;
struct obd_device *obd = m->private;
struct mdt_device *mdt = mdt_dev(obd->obd_lu_dev);
- int val, rc;
+ int rc;
+ __s64 val;
- rc = lprocfs_write_helper(buffer, count, &val);
- if (rc)
- return rc;
+ rc = lprocfs_str_to_s64(buffer, count, &val);
+ if (rc)
+ return rc;
- if (val > LUSTRE_SEC_ALL || val < LUSTRE_SEC_NONE)
- return -EINVAL;
+ if (val > LUSTRE_SEC_ALL || val < LUSTRE_SEC_NONE)
+ return -EINVAL;
- if (val == LUSTRE_SEC_SPECIFY) {
- CWARN("security level %d will be supported in future.\n",
- LUSTRE_SEC_SPECIFY);
- return -EINVAL;
- }
+ if (val == LUSTRE_SEC_SPECIFY) {
+ CWARN("security level %d will be supported in future.\n",
+ LUSTRE_SEC_SPECIFY);
+ return -EINVAL;
+ }
mdt->mdt_lut.lut_sec_level = val;
+
return count;
}
LPROC_SEQ_FOPS(mdt_sec_level);
struct seq_file *m = file->private_data;
struct obd_device *obd = m->private;
struct mdt_device *mdt = mdt_dev(obd->obd_lu_dev);
- int val, rc;
+ int rc;
+ __s64 val;
- rc = lprocfs_write_helper(buffer, count, &val);
+ rc = lprocfs_str_to_s64(buffer, count, &val);
if (rc)
return rc;
+ if (val < INT_MIN || val > INT_MAX)
+ return -ERANGE;
+
mdt_enable_cos(mdt, val);
return count;
}
struct seq_file *m = file->private_data;
struct obd_device *obd = m->private;
struct mdt_device *mdt = mdt_dev(obd->obd_lu_dev);
- __u32 val;
+ __s64 val;
int rc;
- rc = lprocfs_write_helper(buffer, count, &val);
+ rc = lprocfs_str_to_s64(buffer, count, &val);
if (rc)
return rc;
- if (val > 1)
+ if (val > 1 || val < 0)
return -ERANGE;
mdt->mdt_enable_remote_dir = val;
struct seq_file *m = file->private_data;
struct obd_device *obd = m->private;
struct mdt_device *mdt = mdt_dev(obd->obd_lu_dev);
- __u32 val;
+ __s64 val;
int rc;
- rc = lprocfs_write_helper(buffer, count, &val);
+ rc = lprocfs_str_to_s64(buffer, count, &val);
if (rc)
return rc;
struct seq_file *m = file->private_data;
struct obd_device *obd = m->private;
struct mdt_device *mdt = mdt_dev(obd->obd_lu_dev);
- int val;
+ __s64 val;
int rc;
- rc = lprocfs_write_helper(buffer, count, &val);
+ rc = lprocfs_str_to_s64(buffer, count, &val);
if (rc)
return rc;
+ if (val < INT_MIN || val > INT_MAX)
+ return -ERANGE;
+
atomic_set(&mdt->mdt_async_commit_count, val);
return count;
struct seq_file *m = file->private_data;
struct obd_device *obd = m->private;
struct lu_target *tgt = obd->u.obt.obt_lut;
- int val;
+ __s64 val;
int rc;
- rc = lprocfs_write_helper(buffer, count, &val);
+ rc = lprocfs_str_to_s64(buffer, count, &val);
if (rc)
return rc;
+ if (val < INT_MIN || val > INT_MAX)
+ return -ERANGE;
+
atomic_set(&tgt->lut_sync_count, val);
return count;