* Copyright (c) 2008, 2010, Oracle and/or its affiliates. All rights reserved.
* Use is subject to license terms.
*
- * Copyright (c) 2012, 2014, Intel Corporation.
+ * Copyright (c) 2012, 2015, Intel Corporation.
*/
/*
* This file is part of Lustre, http://www.lustre.org/
return 0;
}
-static ssize_t osd_brw_stats_seq_write(struct file *file, const char *buf,
+static ssize_t osd_brw_stats_seq_write(struct file *file,
+ const char __user *buf,
size_t len, loff_t *off)
{
struct seq_file *seq = file->private_data;
static int osd_stats_init(struct osd_device *osd)
{
- int result;
+ int result, i;
ENTRY;
+ for (i = 0; i < BRW_LAST; i++)
+ spin_lock_init(&osd->od_brw_stats.hist[i].oh_lock);
+
osd->od_stats = lprocfs_alloc_stats(LPROC_OSD_LAST, 0);
if (osd->od_stats != NULL) {
result = lprocfs_register_stats(osd->od_proc_entry, "stats",
static int zfs_osd_fstype_seq_show(struct seq_file *m, void *data)
{
- return seq_printf(m, "zfs\n");
+ seq_puts(m, "zfs\n");
+ return 0;
}
LPROC_SEQ_FOPS_RO(zfs_osd_fstype);
struct osd_device *osd = osd_dt_dev((struct dt_device *)m->private);
LASSERT(osd != NULL);
- return seq_printf(m, "%s\n", osd->od_mntdev);
+ seq_printf(m, "%s\n", osd->od_mntdev);
+ return 0;
}
LPROC_SEQ_FOPS_RO(zfs_osd_mntdev);
struct osd_device *osd = osd_dt_dev((struct dt_device *)m->private);
LASSERT(osd != NULL);
- return seq_printf(m, "%d\n", osd->od_quota_iused_est);
+ seq_printf(m, "%d\n", osd->od_quota_iused_est);
+ return 0;
}
static ssize_t
zfs_osd_iused_est_seq_write(struct file *file, const char __user *buffer,
size_t count, loff_t *off)
{
- struct seq_file *m = file->private_data;
- struct dt_device *dt = m->private;
+ struct seq_file *m = file->private_data;
+ struct dt_device *dt = m->private;
struct osd_device *osd = osd_dt_dev(dt);
- int rc, val;
+ int rc;
+ __s64 val;
LASSERT(osd != NULL);
- rc = lprocfs_write_helper(buffer, count, &val);
+ rc = lprocfs_str_to_s64(buffer, count, &val);
if (rc)
return rc;