Add an assert to lprocfs_seq_create() to ensure that proc entries
implementing write have user writable modes. Fix a few callers to
pass this assertion.
Signed-off-by: John L. Hammond <jhammond@tacc.utexas.edu>
Change-Id: I95d08106f7d9be478c29d7331cdf5ab607435889
Reviewed-on: http://review.whamcloud.com/4871
Tested-by: Hudson
Tested-by: Maloo <whamcloud.maloo@gmail.com>
Reviewed-by: Keith Mannthey <keith.mannthey@intel.com>
Reviewed-by: Bob Glossman <bob.glossman@intel.com>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
for (i = 0; i < RENAME_LAST; i++)
spin_lock_init(&mdt->mdt_rename_stats.hist[i].oh_lock);
for (i = 0; i < RENAME_LAST; i++)
spin_lock_init(&mdt->mdt_rename_stats.hist[i].oh_lock);
- return lprocfs_obd_seq_create(obd, "rename_stats", 0444,
+ return lprocfs_obd_seq_create(obd, "rename_stats", 0644,
&mdt_rename_stats_fops, mdt);
}
&mdt_rename_stats_fops, mdt);
}
rc = lprocfs_obd_seq_create(obd, "filesystems", 0444,
&mgs_fs_fops, obd);
rc = lprocfs_obd_seq_create(obd, "filesystems", 0444,
&mgs_fs_fops, obd);
- rc = lprocfs_obd_seq_create(obd, "srpc_rules", 0600,
- &mgsself_srpc_fops, obd);
+ rc = lprocfs_obd_seq_create(obd, "srpc_rules", 0400,
+ &mgsself_srpc_fops, obd);
mgs->mgs_proc_live = lprocfs_register("live", obd->obd_proc_entry,
NULL, NULL);
mgs->mgs_proc_live = lprocfs_register("live", obd->obd_proc_entry,
NULL, NULL);
if (!mgs->mgs_proc_live)
return 0;
if (!mgs->mgs_proc_live)
return 0;
- rc = lprocfs_seq_create(mgs->mgs_proc_live, fsdb->fsdb_name, 0444,
- &mgs_live_fops, fsdb);
+ rc = lprocfs_seq_create(mgs->mgs_proc_live, fsdb->fsdb_name, 0644,
+ &mgs_live_fops, fsdb);
struct proc_dir_entry *entry;
ENTRY;
struct proc_dir_entry *entry;
ENTRY;
+ /* Disallow secretly (un)writable entries. */
+ LASSERT((seq_fops->write == NULL) == ((mode & 0222) == 0));
+
LPROCFS_WRITE_ENTRY();
entry = create_proc_entry(name, mode, parent);
if (entry) {
LPROCFS_WRITE_ENTRY();
entry = create_proc_entry(name, mode, parent);
if (entry) {
int lproc_ofd_attach_seqstat(struct obd_device *dev)
{
int lproc_ofd_attach_seqstat(struct obd_device *dev)
{
- return lprocfs_obd_seq_create(dev, "brw_stats", 0444,
+ return lprocfs_obd_seq_create(dev, "brw_stats", 0644,
&ofd_brw_stats_fops, dev);
}
&ofd_brw_stats_fops, dev);
}
int lproc_osc_attach_seqstat(struct obd_device *dev)
{
int lproc_osc_attach_seqstat(struct obd_device *dev)
{
- rc = lprocfs_seq_create(dev->obd_proc_entry, "osc_stats", 0444,
- &osc_stats_fops, dev);
- if (rc == 0)
- rc = lprocfs_obd_seq_create(dev, "rpc_stats", 0444,
- &osc_rpc_stats_fops, dev);
- return rc;
+ rc = lprocfs_seq_create(dev->obd_proc_entry, "osc_stats", 0644,
+ &osc_stats_fops, dev);
+ if (rc == 0)
+ rc = lprocfs_obd_seq_create(dev, "rpc_stats", 0644,
+ &osc_rpc_stats_fops, dev);
+
+ return rc;
}
void lprocfs_osc_init_vars(struct lprocfs_static_vars *lvars)
}
void lprocfs_osc_init_vars(struct lprocfs_static_vars *lvars)
LPROCFS_CNTR_AVGMINMAX,
"thandle closing", "usec");
#endif
LPROCFS_CNTR_AVGMINMAX,
"thandle closing", "usec");
#endif
- lprocfs_seq_create(osd->od_proc_entry, "brw_stats",
- 0444, &osd_brw_stats_fops, osd);
+ lprocfs_seq_create(osd->od_proc_entry, "brw_stats",
+ 0644, &osd_brw_stats_fops, osd);