diff options
Diffstat (limited to 'drivers/staging/lustre/lustre/lov/lproc_lov.c')
-rw-r--r-- | drivers/staging/lustre/lustre/lov/lproc_lov.c | 58 |
1 files changed, 22 insertions, 36 deletions
diff --git a/drivers/staging/lustre/lustre/lov/lproc_lov.c b/drivers/staging/lustre/lustre/lov/lproc_lov.c index 174cbf5c138f..380b8271bf24 100644 --- a/drivers/staging/lustre/lustre/lov/lproc_lov.c +++ b/drivers/staging/lustre/lustre/lov/lproc_lov.c @@ -166,29 +166,29 @@ static ssize_t lov_stripecount_seq_write(struct file *file, } LPROC_SEQ_FOPS(lov_stripecount); -static int lov_numobd_seq_show(struct seq_file *m, void *v) +static ssize_t numobd_show(struct kobject *kobj, struct attribute *attr, + char *buf) { - struct obd_device *dev = (struct obd_device *)m->private; + struct obd_device *dev = container_of(kobj, struct obd_device, + obd_kobj); struct lov_desc *desc; - LASSERT(dev != NULL); desc = &dev->u.lov.desc; - seq_printf(m, "%u\n", desc->ld_tgt_count); - return 0; + return sprintf(buf, "%u\n", desc->ld_tgt_count); } -LPROC_SEQ_FOPS_RO(lov_numobd); +LUSTRE_RO_ATTR(numobd); -static int lov_activeobd_seq_show(struct seq_file *m, void *v) +static ssize_t activeobd_show(struct kobject *kobj, struct attribute *attr, + char *buf) { - struct obd_device *dev = (struct obd_device *)m->private; + struct obd_device *dev = container_of(kobj, struct obd_device, + obd_kobj); struct lov_desc *desc; - LASSERT(dev != NULL); desc = &dev->u.lov.desc; - seq_printf(m, "%u\n", desc->ld_active_tgt_count); - return 0; + return sprintf(buf, "%u\n", desc->ld_active_tgt_count); } -LPROC_SEQ_FOPS_RO(lov_activeobd); +LUSTRE_RO_ATTR(activeobd); static int lov_desc_uuid_seq_show(struct seq_file *m, void *v) { @@ -258,48 +258,34 @@ static int lov_target_seq_open(struct inode *inode, struct file *file) return rc; seq = file->private_data; - seq->private = PDE_DATA(inode); + seq->private = inode->i_private; return 0; } -LPROC_SEQ_FOPS_RO_TYPE(lov, uuid); -LPROC_SEQ_FOPS_RO_TYPE(lov, filestotal); -LPROC_SEQ_FOPS_RO_TYPE(lov, filesfree); -LPROC_SEQ_FOPS_RO_TYPE(lov, blksize); -LPROC_SEQ_FOPS_RO_TYPE(lov, kbytestotal); -LPROC_SEQ_FOPS_RO_TYPE(lov, kbytesfree); -LPROC_SEQ_FOPS_RO_TYPE(lov, kbytesavail); - static struct lprocfs_vars lprocfs_lov_obd_vars[] = { - { "uuid", &lov_uuid_fops, NULL, 0 }, { "stripesize", &lov_stripesize_fops, NULL }, { "stripeoffset", &lov_stripeoffset_fops, NULL }, { "stripecount", &lov_stripecount_fops, NULL }, { "stripetype", &lov_stripetype_fops, NULL }, - { "numobd", &lov_numobd_fops, NULL, 0 }, - { "activeobd", &lov_activeobd_fops, NULL, 0 }, - { "filestotal", &lov_filestotal_fops, NULL, 0 }, - { "filesfree", &lov_filesfree_fops, NULL, 0 }, /*{ "filegroups", lprocfs_rd_filegroups, NULL, 0 },*/ - { "blocksize", &lov_blksize_fops, NULL, 0 }, - { "kbytestotal", &lov_kbytestotal_fops, NULL, 0 }, - { "kbytesfree", &lov_kbytesfree_fops, NULL, 0 }, - { "kbytesavail", &lov_kbytesavail_fops, NULL, 0 }, { "desc_uuid", &lov_desc_uuid_fops, NULL, 0 }, { NULL } }; -LPROC_SEQ_FOPS_RO_TYPE(lov, numrefs); +static struct attribute *lov_attrs[] = { + &lustre_attr_activeobd.attr, + &lustre_attr_numobd.attr, + NULL, +}; -static struct lprocfs_vars lprocfs_lov_module_vars[] = { - { "num_refs", &lov_numrefs_fops, NULL, 0 }, - { NULL } +static struct attribute_group lov_attr_group = { + .attrs = lov_attrs, }; void lprocfs_lov_init_vars(struct lprocfs_static_vars *lvars) { - lvars->module_vars = lprocfs_lov_module_vars; - lvars->obd_vars = lprocfs_lov_obd_vars; + lvars->sysfs_vars = &lov_attr_group; + lvars->obd_vars = lprocfs_lov_obd_vars; } const struct file_operations lov_proc_target_fops = { |