From: James Simmons Date: Fri, 27 Jul 2018 22:13:42 +0000 (-0400) Subject: LU-8066 llite: move /proc/fs/lustre/llite/kbytes* to sysfs X-Git-Tag: 2.11.54~30 X-Git-Url: https://git.whamcloud.com/?a=commitdiff_plain;h=refs%2Fchanges%2F97%2F32497%2F7;p=fs%2Flustre-release.git LU-8066 llite: move /proc/fs/lustre/llite/kbytes* to sysfs Move kbytestotal, kbytesavail and kbytesfree files from /proc/fs/lustre/llite/* to /sys/fs/lustre/llite/*/ This is a modified version of Linux-commit: 5804b11e1487558c6740282a01a08bb4ba0c6d06 due to the large amount of changes to the OpenSFS/Intel branch. Change-Id: Ifb43c01bb0055051cecb01ed6a183d1797d3870e Signed-off-by: Oleg Drokin Signed-off-by: Greg Kroah-Hartman Signed-off-by: James Simmons Reviewed-on: https://review.whamcloud.com/32497 Reviewed-by: Andreas Dilger Reviewed-by: Bobi Jam Tested-by: Jenkins Tested-by: Maloo Reviewed-by: Oleg Drokin --- diff --git a/lustre/llite/lproc_llite.c b/lustre/llite/lproc_llite.c index 6330ea0..c777d35 100644 --- a/lustre/llite/lproc_llite.c +++ b/lustre/llite/lproc_llite.c @@ -131,68 +131,77 @@ static ssize_t ll_stat_blksize_seq_write(struct file *file, } LPROC_SEQ_FOPS(ll_stat_blksize); -static int ll_kbytestotal_seq_show(struct seq_file *m, void *v) +static ssize_t kbytestotal_show(struct kobject *kobj, struct attribute *attr, + char *buf) { - struct super_block *sb = m->private; + struct ll_sb_info *sbi = container_of(kobj, struct ll_sb_info, + ll_kset.kobj); struct obd_statfs osfs; + u32 blk_size; + u64 result; int rc; - LASSERT(sb != NULL); - rc = ll_statfs_internal(ll_s2sbi(sb), &osfs, OBD_STATFS_NODELAY); - if (!rc) { - __u32 blk_size = osfs.os_bsize >> 10; - __u64 result = osfs.os_blocks; + rc = ll_statfs_internal(sbi, &osfs, OBD_STATFS_NODELAY); + if (rc) + return rc; - while (blk_size >>= 1) - result <<= 1; + blk_size = osfs.os_bsize >> 10; + result = osfs.os_blocks; - seq_printf(m, "%llu\n", result); - } - return rc; + while (blk_size >>= 1) + result <<= 1; + + return sprintf(buf, "%llu\n", result); } -LPROC_SEQ_FOPS_RO(ll_kbytestotal); +LUSTRE_RO_ATTR(kbytestotal); -static int ll_kbytesfree_seq_show(struct seq_file *m, void *v) +static ssize_t kbytesfree_show(struct kobject *kobj, struct attribute *attr, + char *buf) { - struct super_block *sb = m->private; + struct ll_sb_info *sbi = container_of(kobj, struct ll_sb_info, + ll_kset.kobj); struct obd_statfs osfs; + u32 blk_size; + u64 result; int rc; - LASSERT(sb != NULL); - rc = ll_statfs_internal(ll_s2sbi(sb), &osfs, OBD_STATFS_NODELAY); - if (!rc) { - __u32 blk_size = osfs.os_bsize >> 10; - __u64 result = osfs.os_bfree; + rc = ll_statfs_internal(sbi, &osfs, OBD_STATFS_NODELAY); + if (rc) + return rc; - while (blk_size >>= 1) - result <<= 1; + blk_size = osfs.os_bsize >> 10; + result = osfs.os_bfree; - seq_printf(m, "%llu\n", result); - } - return rc; + while (blk_size >>= 1) + result <<= 1; + + return sprintf(buf, "%llu\n", result); } -LPROC_SEQ_FOPS_RO(ll_kbytesfree); +LUSTRE_RO_ATTR(kbytesfree); -static int ll_kbytesavail_seq_show(struct seq_file *m, void *v) +static ssize_t kbytesavail_show(struct kobject *kobj, struct attribute *attr, + char *buf) { - struct super_block *sb = m->private; + struct ll_sb_info *sbi = container_of(kobj, struct ll_sb_info, + ll_kset.kobj); struct obd_statfs osfs; + u32 blk_size; + u64 result; int rc; - LASSERT(sb != NULL); - rc = ll_statfs_internal(ll_s2sbi(sb), &osfs, OBD_STATFS_NODELAY); - if (!rc) { - __u32 blk_size = osfs.os_bsize >> 10; - __u64 result = osfs.os_bavail; + rc = ll_statfs_internal(sbi, &osfs, OBD_STATFS_NODELAY); + if (rc) + return rc; - while (blk_size >>= 1) - result <<= 1; + blk_size = osfs.os_bsize >> 10; + result = osfs.os_bavail; - seq_printf(m, "%llu\n", result); - } - return rc; + while (blk_size >>= 1) + result <<= 1; + + return sprintf(buf, "%llu\n", result); } -LPROC_SEQ_FOPS_RO(ll_kbytesavail); +LUSTRE_RO_ATTR(kbytesavail); static int ll_filestotal_seq_show(struct seq_file *m, void *v) { @@ -1174,12 +1183,6 @@ struct lprocfs_vars lprocfs_llite_obd_vars[] = { .fops = &ll_site_stats_fops }, { .name = "stat_blocksize", .fops = &ll_stat_blksize_fops }, - { .name = "kbytestotal", - .fops = &ll_kbytestotal_fops }, - { .name = "kbytesfree", - .fops = &ll_kbytesfree_fops }, - { .name = "kbytesavail", - .fops = &ll_kbytesavail_fops }, { .name = "filestotal", .fops = &ll_filestotal_fops }, { .name = "filesfree", @@ -1237,6 +1240,9 @@ struct lprocfs_vars lprocfs_llite_obd_vars[] = { static struct attribute *llite_attrs[] = { &lustre_attr_blocksize.attr, + &lustre_attr_kbytestotal.attr, + &lustre_attr_kbytesfree.attr, + &lustre_attr_kbytesavail.attr, &lustre_attr_statahead_running_max.attr, NULL, };