[PATCH 1/4] mm: restore node stat checking in /proc/sys/vm/stat_refresh

From: Hugh Dickins
Date: Thu Feb 25 2021 - 18:11:25 EST


v4.7 52b6f46bc163 ("mm: /proc/sys/vm/stat_refresh to force vmstat update")
introduced vmstat_refresh(), with its vmstat underflow checking; then
v4.8 75ef71840539 ("mm, vmstat: add infrastructure for per-node vmstats")
split NR_VM_NODE_STAT_ITEMS out of NR_VM_ZONE_STAT_ITEMS without updating
vmstat_refresh(): so it has been missing out much of the vmstat underflow
checking ever since. Reinstate it. Thanks to Roman Gushchin <guro@xxxxxx>
for tangentially pointing this out.

Signed-off-by: Hugh Dickins <hughd@xxxxxxxxxx>
---

mm/vmstat.c | 8 ++++++++
1 file changed, 8 insertions(+)

--- 5.12-rc/mm/vmstat.c 2021-02-24 12:03:55.000000000 -0800
+++ vmstat1/mm/vmstat.c 2021-02-25 11:50:36.000000000 -0800
@@ -1857,6 +1857,14 @@ int vmstat_refresh(struct ctl_table *tab
}
}
#endif
+ for (i = 0; i < NR_VM_NODE_STAT_ITEMS; i++) {
+ val = atomic_long_read(&vm_node_stat[i]);
+ if (val < 0) {
+ pr_warn("%s: %s %ld\n",
+ __func__, node_stat_name(i), val);
+ err = -EINVAL;
+ }
+ }
if (err)
return err;
if (write)