X-Git-Url: https://git.whamcloud.com/?a=blobdiff_plain;f=lustre%2Fosd-zfs%2Fosd_lproc.c;h=0dfb483628b11ab94b1779a6d7234444accb1230;hb=b738c4850935f3a9c483b3141cb37d6539557615;hp=86957ffbfe9026c8d1bf064abbbec748c9dd2b2a;hpb=0754bc8f2623bea184111af216f7567608db35b6;p=fs%2Flustre-release.git diff --git a/lustre/osd-zfs/osd_lproc.c b/lustre/osd-zfs/osd_lproc.c index 86957ff..0dfb483 100644 --- a/lustre/osd-zfs/osd_lproc.c +++ b/lustre/osd-zfs/osd_lproc.c @@ -139,7 +139,8 @@ static int osd_brw_stats_seq_show(struct seq_file *seq, void *v) 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; @@ -156,9 +157,12 @@ LPROC_SEQ_FOPS(osd_brw_stats); 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", @@ -213,7 +217,8 @@ out: 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); @@ -222,7 +227,8 @@ static int zfs_osd_mntdev_seq_show(struct seq_file *m, void *data) 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); @@ -250,21 +256,23 @@ static int zfs_osd_iused_est_seq_show(struct seq_file *m, void *data) 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;