Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755866AbcJRVnT (ORCPT ); Tue, 18 Oct 2016 17:43:19 -0400 Received: from casper.infradead.org ([85.118.1.10]:44356 "EHLO casper.infradead.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755495AbcJRVnN (ORCPT ); Tue, 18 Oct 2016 17:43:13 -0400 Date: Tue, 18 Oct 2016 22:43:07 +0100 (BST) From: James Simmons To: Oleg Drokin cc: Greg Kroah-Hartman , devel@driverdev.osuosl.org, Andreas Dilger , Linux Kernel Mailing List , Lustre Development List Subject: Re: [PATCH] staging/lustre/llite: Move unstable_stats from sysfs to debugfs In-Reply-To: <1476638210-208994-1-git-send-email-green@linuxhacker.ru> Message-ID: References: <1476638210-208994-1-git-send-email-green@linuxhacker.ru> User-Agent: Alpine 2.20 (LFD 67 2015-01-07) MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20161018_224307_862364_73AAEB84 X-CRM114-Status: GOOD ( 15.26 ) X-Spam-Score: -1.9 (-) X-Spam-Report: SpamAssassin version 3.4.1 on casper.infradead.org summary: Content analysis details: (-1.9 points, 5.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -0.0 NO_RELAYS Informational: message was not relayed via SMTP -1.9 BAYES_00 BODY: Bayes spam probability is 0 to 1% [score: 0.0000] Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 3484 Lines: 96 > It's multiple values per file, so it has no business being in sysfs, > besides it was assuming seqfile anyway. > > Introduced by > commit d806f30e639b ("staging: lustre: osc: revise unstable pages accounting") Tested it manually to make sure it was right this time. Reviewed-by: James Simmons > Signed-off-by: Oleg Drokin > --- > drivers/staging/lustre/lustre/llite/lproc_llite.c | 34 +++++++++++------------ > 1 file changed, 17 insertions(+), 17 deletions(-) > > diff --git a/drivers/staging/lustre/lustre/llite/lproc_llite.c b/drivers/staging/lustre/lustre/llite/lproc_llite.c > index 6eae605..23fda9d 100644 > --- a/drivers/staging/lustre/lustre/llite/lproc_llite.c > +++ b/drivers/staging/lustre/lustre/llite/lproc_llite.c > @@ -871,12 +871,10 @@ static ssize_t xattr_cache_store(struct kobject *kobj, > } > LUSTRE_RW_ATTR(xattr_cache); > > -static ssize_t unstable_stats_show(struct kobject *kobj, > - struct attribute *attr, > - char *buf) > +static int ll_unstable_stats_seq_show(struct seq_file *m, void *v) > { > - struct ll_sb_info *sbi = container_of(kobj, struct ll_sb_info, > - ll_kobj); > + struct super_block *sb = m->private; > + struct ll_sb_info *sbi = ll_s2sbi(sb); > struct cl_client_cache *cache = sbi->ll_cache; > long pages; > int mb; > @@ -884,19 +882,21 @@ static ssize_t unstable_stats_show(struct kobject *kobj, > pages = atomic_long_read(&cache->ccc_unstable_nr); > mb = (pages * PAGE_SIZE) >> 20; > > - return sprintf(buf, "unstable_check: %8d\n" > - "unstable_pages: %12ld\n" > - "unstable_mb: %8d\n", > - cache->ccc_unstable_check, pages, mb); > + seq_printf(m, > + "unstable_check: %8d\n" > + "unstable_pages: %12ld\n" > + "unstable_mb: %8d\n", > + cache->ccc_unstable_check, pages, mb); > + > + return 0; > } > > -static ssize_t unstable_stats_store(struct kobject *kobj, > - struct attribute *attr, > - const char *buffer, > - size_t count) > +static ssize_t ll_unstable_stats_seq_write(struct file *file, > + const char __user *buffer, > + size_t count, loff_t *off) > { > - struct ll_sb_info *sbi = container_of(kobj, struct ll_sb_info, > - ll_kobj); > + struct super_block *sb = ((struct seq_file *)file->private_data)->private; > + struct ll_sb_info *sbi = ll_s2sbi(sb); > char kernbuf[128]; > int val, rc; > > @@ -922,7 +922,7 @@ static ssize_t unstable_stats_store(struct kobject *kobj, > > return count; > } > -LUSTRE_RW_ATTR(unstable_stats); > +LPROC_SEQ_FOPS(ll_unstable_stats); > > static ssize_t root_squash_show(struct kobject *kobj, struct attribute *attr, > char *buf) > @@ -995,6 +995,7 @@ static struct lprocfs_vars lprocfs_llite_obd_vars[] = { > /* { "filegroups", lprocfs_rd_filegroups, 0, 0 }, */ > { "max_cached_mb", &ll_max_cached_mb_fops, NULL }, > { "statahead_stats", &ll_statahead_stats_fops, NULL, 0 }, > + { "unstable_stats", &ll_unstable_stats_fops, NULL }, > { "sbi_flags", &ll_sbi_flags_fops, NULL, 0 }, > { .name = "nosquash_nids", > .fops = &ll_nosquash_nids_fops }, > @@ -1026,7 +1027,6 @@ static struct attribute *llite_attrs[] = { > &lustre_attr_max_easize.attr, > &lustre_attr_default_easize.attr, > &lustre_attr_xattr_cache.attr, > - &lustre_attr_unstable_stats.attr, > &lustre_attr_root_squash.attr, > NULL, > }; > -- > 2.7.4 > >