These changes are the raw update to linux-4.4.6-rt14. Kernel sources
[kvmfornfv.git] / kernel / drivers / staging / lustre / lustre / lov / lproc_lov.c
index 174cbf5..a0be15c 100644 (file)
@@ -71,6 +71,7 @@ static ssize_t lov_stripesize_seq_write(struct file *file,
        desc->ld_default_stripe_size = val;
        return count;
 }
+
 LPROC_SEQ_FOPS(lov_stripesize);
 
 static int lov_stripeoffset_seq_show(struct seq_file *m, void *v)
@@ -102,6 +103,7 @@ static ssize_t lov_stripeoffset_seq_write(struct file *file,
        desc->ld_default_stripe_offset = val;
        return count;
 }
+
 LPROC_SEQ_FOPS(lov_stripeoffset);
 
 static int lov_stripetype_seq_show(struct seq_file *m, void *v)
@@ -133,6 +135,7 @@ static ssize_t lov_stripetype_seq_write(struct file *file,
        desc->ld_pattern = val;
        return count;
 }
+
 LPROC_SEQ_FOPS(lov_stripetype);
 
 static int lov_stripecount_seq_show(struct seq_file *m, void *v)
@@ -164,31 +167,32 @@ static ssize_t lov_stripecount_seq_write(struct file *file,
        desc->ld_default_stripe_count = val;
        return count;
 }
+
 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)
 {
@@ -200,6 +204,7 @@ static int lov_desc_uuid_seq_show(struct seq_file *m, void *v)
        seq_printf(m, "%s\n", lov->desc.ld_uuid.uuid);
        return 0;
 }
+
 LPROC_SEQ_FOPS_RO(lov_desc_uuid);
 
 static void *lov_tgt_seq_start(struct seq_file *p, loff_t *pos)
@@ -258,48 +263,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 = {