The commit is pushed to "branch-rh10-6.12.0-55.13.1.2.x.vz10-ovz" and will 
appear at g...@bitbucket.org:openvz/vzkernel.git
after rh10-6.12.0-55.13.1.2.3.vz10
------>
commit 1fb052486a1a3581990a59d67758983ff70b17da
Author: Pavel Tikhomirov <ptikhomi...@virtuozzo.com>
Date:   Thu Sep 4 11:11:23 2025 +0800

    vzstat: cleanup proc entry creation code
    
    Replace single proc file open-coded implementation through proc_create
    with shorter and simplier proc_create_single. Can do this because
    empty_seq_* ops are equivalents of single_* ops.
    
    While on it also remove single-return "fail_lat" label in accordance
    with the coding-style.
    
    https://virtuozzo.atlassian.net/browse/VSTOR-106081
    Fixes: 7751c70f38d2a ("vzstat: Add vzstat module and kstat interfaces")
    Signed-off-by: Pavel Tikhomirov <ptikhomi...@virtuozzo.com>
    
    Feature: ve: extra statistics (mm, latency)
---
 kernel/ve/vzstat.c | 99 +++---------------------------------------------------
 1 file changed, 4 insertions(+), 95 deletions(-)

diff --git a/kernel/ve/vzstat.c b/kernel/ve/vzstat.c
index ed8ae00677591..8420adba3af5f 100644
--- a/kernel/ve/vzstat.c
+++ b/kernel/ve/vzstat.c
@@ -599,53 +599,6 @@ static int vzstat_mon_loop(void* data)
        return 0;
 }
 
-/*
- * ------------------------------------------------------------------------
- * default sequential files methods
- * ------------------------------------------------------------------------
- */
-static void *empty_seq_start(struct seq_file *m, loff_t *pos)
-{
-       if (*pos == 0)
-               return (void*)1;
-       else
-               return NULL;
-}
-
-static void *empty_seq_next(struct seq_file *m, void *v, loff_t *pos)
-{
-       (*pos)++;
-       return NULL;
-}
-
-static void empty_seq_stop(struct seq_file *m, void *v)
-{
-}
-
-/*
- * ------------------------------------------------------------------------
- * /proc/vz/latency sequential file methods
- * ------------------------------------------------------------------------
- */
-static struct seq_operations latency_seq_op = {
-       start:  empty_seq_start,
-       next:   empty_seq_next,
-       stop:   empty_seq_stop,
-       show:   latency_seq_show
-};
-
-static int latency_open(struct inode *inode, struct file *file)
-{
-       return seq_open(file, &latency_seq_op);
-}
-
-static struct proc_ops proc_latency_operations = {
-       .proc_open = latency_open,
-       .proc_read = seq_read,
-       .proc_lseek = seq_lseek,
-       .proc_release = seq_release,
-};
-
 /*
  * ------------------------------------------------------------------------
  * /proc/vz/stats sequential file methods
@@ -668,49 +621,6 @@ static int stats_seq_show(struct seq_file *m, void *v)
        return 0;
 }
 
-static struct seq_operations stats_seq_op = {
-       start:  empty_seq_start,
-       next:   empty_seq_next,
-       stop:   empty_seq_stop,
-       show:   stats_seq_show
-};
-
-static int stats_open(struct inode *inode, struct file *file)
-{
-       return seq_open(file, &stats_seq_op);
-}
-
-static struct proc_ops proc_stats_operations = {
-       .proc_open = stats_open,
-       .proc_read = seq_read,
-       .proc_lseek = seq_lseek,
-       .proc_release = seq_release,
-};
-
-/*
- * ------------------------------------------------------------------------
- * /proc/vz/mmperf sequential file methods
- * ------------------------------------------------------------------------
- */
-static struct seq_operations mmperf_seq_op = {
-       start:  empty_seq_start,
-       next:   empty_seq_next,
-       stop:   empty_seq_stop,
-       show:   mmperf_seq_show
-};
-
-static int mmperf_open(struct inode *inode, struct file *file)
-{
-       return seq_open(file, &mmperf_seq_op);
-}
-
-static struct proc_ops proc_mmperf_operations = {
-       .proc_open = mmperf_open,
-       .proc_read = seq_read,
-       .proc_lseek = seq_lseek,
-       .proc_release = seq_release,
-};
-
 /*
  * ------------------------------------------------------------------------
  * module init/exit code
@@ -721,19 +631,19 @@ static int __init vzstat_mon_init(void)
 {
        struct proc_dir_entry *entry;
 
-       entry = proc_create("latency", S_IRUGO, proc_vz_dir, 
&proc_latency_operations);
+       entry = proc_create_single("latency", S_IRUGO, proc_vz_dir, 
latency_seq_show);
        if (entry == NULL) {
                printk(KERN_WARNING "VZSTAT: can't make proc entry\n");
-               goto fail_lat;
+               return -EBUSY;
        }
 
-       entry = proc_create("stats", S_IRUGO, proc_vz_dir, 
&proc_stats_operations);
+       entry = proc_create_single("stats", S_IRUGO, proc_vz_dir, 
stats_seq_show);
        if (!entry) {
                printk(KERN_WARNING "VZSTAT: can't make proc entry\n");
                goto fail_stat;
        }
 
-       entry = proc_create("mmperf", S_IRUGO, proc_vz_dir, 
&proc_mmperf_operations);
+       entry = proc_create_single("mmperf", S_IRUGO, proc_vz_dir, 
mmperf_seq_show);
        if (!entry) {
                printk(KERN_WARNING "VZSTAT: can't make proc entry\n");
                goto fail_perf;
@@ -753,7 +663,6 @@ static int __init vzstat_mon_init(void)
        remove_proc_entry("stats", proc_vz_dir);
 fail_stat:
        remove_proc_entry("latency", proc_vz_dir);
-fail_lat:
        return -EBUSY;
 }
 
_______________________________________________
Devel mailing list
Devel@openvz.org
https://lists.openvz.org/mailman/listinfo/devel

Reply via email to