*/
/*
* This file is part of Lustre, http://www.lustre.org/
- * Lustre is a trademark of Sun Microsystems, Inc.
*/
#define DEBUG_SUBSYSTEM S_CLASS
static ssize_t numobd_show(struct kobject *kobj, struct attribute *attr,
char *buf)
{
- struct obd_device *dev = container_of(kobj, struct obd_device,
+ struct obd_device *obd = container_of(kobj, struct obd_device,
obd_kset.kobj);
- return sprintf(buf, "%u\n", dev->u.lmv.lmv_mdt_count);
+ return scnprintf(buf, PAGE_SIZE, "%u\n", obd->u.lmv.lmv_mdt_count);
}
LUSTRE_RO_ATTR(numobd);
static ssize_t activeobd_show(struct kobject *kobj, struct attribute *attr,
char *buf)
{
- struct obd_device *dev = container_of(kobj, struct obd_device,
+ struct obd_device *obd = container_of(kobj, struct obd_device,
obd_kset.kobj);
- return sprintf(buf, "%u\n",
- dev->u.lmv.lmv_mdt_descs.ltd_lmv_desc.ld_active_tgt_count);
+ return scnprintf(buf, PAGE_SIZE, "%u\n",
+ obd->u.lmv.lmv_mdt_descs.ltd_lmv_desc.ld_active_tgt_count);
}
LUSTRE_RO_ATTR(activeobd);
static ssize_t desc_uuid_show(struct kobject *kobj, struct attribute *attr,
char *buf)
{
- struct obd_device *dev = container_of(kobj, struct obd_device,
+ struct obd_device *obd = container_of(kobj, struct obd_device,
obd_kset.kobj);
- return sprintf(buf, "%s\n",
- dev->u.lmv.lmv_mdt_descs.ltd_lmv_desc.ld_uuid.uuid);
+ return scnprintf(buf, PAGE_SIZE, "%s\n",
+ obd->u.lmv.lmv_mdt_descs.ltd_lmv_desc.ld_uuid.uuid);
}
LUSTRE_RO_ATTR(desc_uuid);
struct attribute *attr,
char *buf)
{
- struct obd_device *dev = container_of(kobj, struct obd_device,
+ struct obd_device *obd = container_of(kobj, struct obd_device,
obd_kset.kobj);
- return sprintf(buf, "%u\n",
- dev->u.lmv.lmv_mdt_descs.ltd_lmv_desc.ld_qos_maxage);
+ return scnprintf(buf, PAGE_SIZE, "%u\n",
+ obd->u.lmv.lmv_mdt_descs.ltd_lmv_desc.ld_qos_maxage);
}
static ssize_t qos_maxage_store(struct kobject *kobj,
const char *buffer,
size_t count)
{
- struct obd_device *dev = container_of(kobj, struct obd_device,
+ struct obd_device *obd = container_of(kobj, struct obd_device,
obd_kset.kobj);
unsigned int val;
int rc;
if (rc)
return rc;
- dev->u.lmv.lmv_mdt_descs.ltd_lmv_desc.ld_qos_maxage = val;
+ obd->u.lmv.lmv_mdt_descs.ltd_lmv_desc.ld_qos_maxage = val;
return count;
}
struct attribute *attr,
char *buf)
{
- struct obd_device *dev = container_of(kobj, struct obd_device,
+ struct obd_device *obd = container_of(kobj, struct obd_device,
obd_kset.kobj);
- return sprintf(buf, "%u%%\n",
- (dev->u.lmv.lmv_qos.lq_prio_free * 100 + 255) >> 8);
+ return scnprintf(buf, PAGE_SIZE, "%u%%\n",
+ (obd->u.lmv.lmv_qos.lq_prio_free * 100 + 255) >> 8);
}
static ssize_t qos_prio_free_store(struct kobject *kobj,
const char *buffer,
size_t count)
{
- struct obd_device *dev = container_of(kobj, struct obd_device,
+ struct obd_device *obd = container_of(kobj, struct obd_device,
obd_kset.kobj);
- struct lmv_obd *lmv = &dev->u.lmv;
+ struct lmv_obd *lmv = &obd->u.lmv;
unsigned int val;
int rc;
return -EINVAL;
lmv->lmv_qos.lq_prio_free = (val << 8) / 100;
- lmv->lmv_qos.lq_dirty = 1;
- lmv->lmv_qos.lq_reset = 1;
+ set_bit(LQ_DIRTY, &lmv->lmv_qos.lq_flags);
+ set_bit(LQ_RESET, &lmv->lmv_qos.lq_flags);
return count;
}
struct attribute *attr,
char *buf)
{
- struct obd_device *dev = container_of(kobj, struct obd_device,
+ struct obd_device *obd = container_of(kobj, struct obd_device,
obd_kset.kobj);
- return sprintf(buf, "%u%%\n",
- (dev->u.lmv.lmv_qos.lq_threshold_rr * 100 + 255) >> 8);
+ return scnprintf(buf, PAGE_SIZE, "%u%%\n",
+ (obd->u.lmv.lmv_qos.lq_threshold_rr * 100 + 255) >> 8);
}
static ssize_t qos_threshold_rr_store(struct kobject *kobj,
const char *buffer,
size_t count)
{
- struct obd_device *dev = container_of(kobj, struct obd_device,
+ struct obd_device *obd = container_of(kobj, struct obd_device,
obd_kset.kobj);
- struct lmv_obd *lmv = &dev->u.lmv;
+ struct lmv_obd *lmv = &obd->u.lmv;
unsigned int val;
int rc;
return -EINVAL;
lmv->lmv_qos.lq_threshold_rr = (val << 8) / 100;
- lmv->lmv_qos.lq_dirty = 1;
+ set_bit(LQ_DIRTY, &lmv->lmv_qos.lq_flags);
return count;
}
#ifdef CONFIG_PROC_FS
static void *lmv_tgt_seq_start(struct seq_file *p, loff_t *pos)
{
- struct obd_device *dev = p->private;
- struct lmv_obd *lmv = &dev->u.lmv;
+ struct obd_device *obd = p->private;
+ struct lmv_obd *lmv = &obd->u.lmv;
struct lu_tgt_desc *tgt;
while (*pos < lmv->lmv_mdt_descs.ltd_tgts_size) {
static void *lmv_tgt_seq_next(struct seq_file *p, void *v, loff_t *pos)
{
- struct obd_device *dev = p->private;
- struct lmv_obd *lmv = &dev->u.lmv;
+ struct obd_device *obd = p->private;
+ struct lmv_obd *lmv = &obd->u.lmv;
struct lu_tgt_desc *tgt;
++*pos;
return 0;
}
-static const struct file_operations lmv_proc_target_fops = {
- .owner = THIS_MODULE,
- .open = lmv_target_seq_open,
- .read = seq_read,
- .llseek = seq_lseek,
- .release = seq_release,
+static const struct proc_ops lmv_proc_target_fops = {
+ PROC_OWNER(THIS_MODULE)
+ .proc_open = lmv_target_seq_open,
+ .proc_read = seq_read,
+ .proc_lseek = seq_lseek,
+ .proc_release = seq_release,
};
#endif /* CONFIG_PROC_FS */