[PATCH] drop_caches: Allow re-enabling message after disabling

From: Joel Granados
Date: Thu Mar 13 2025 - 11:47:54 EST


After writing "4" to /proc/sys/vm/drop_caches there was no way to
re-enable the drop_caches kernel message. By removing the "or" logic for
the stfu variable in drop_cache_sysctl_handler, it is now possible to
toggle the message on and off by setting the 4th bit in
/proc/sys/vm/drop_caches.

Signed-off-by: Joel Granados <joel.granados@xxxxxxxxxx>
---
Documentation/admin-guide/sysctl/vm.rst | 2 +-
fs/drop_caches.c | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/Documentation/admin-guide/sysctl/vm.rst b/Documentation/admin-guide/sysctl/vm.rst
index f48eaa98d22d2b575f6e913f437b0d548daac3e6..75a032f8cbfb4e05f04610cca219d154bd852789 100644
--- a/Documentation/admin-guide/sysctl/vm.rst
+++ b/Documentation/admin-guide/sysctl/vm.rst
@@ -266,7 +266,7 @@ used::
cat (1234): drop_caches: 3

These are informational only. They do not mean that anything is wrong
-with your system. To disable them, echo 4 (bit 2) into drop_caches.
+with your system. To toggle them, echo 4 (bit 2) into drop_caches.

enable_soft_offline
===================
diff --git a/fs/drop_caches.c b/fs/drop_caches.c
index d45ef541d848a73cbd19205e0111c2cab3b73617..501b9f690445e245f88cbb31a5123b2752e2e7ce 100644
--- a/fs/drop_caches.c
+++ b/fs/drop_caches.c
@@ -73,7 +73,7 @@ int drop_caches_sysctl_handler(const struct ctl_table *table, int write,
current->comm, task_pid_nr(current),
sysctl_drop_caches);
}
- stfu |= sysctl_drop_caches & 4;
+ stfu = sysctl_drop_caches & 4;
}
return 0;
}

---
base-commit: 7eb172143d5508b4da468ed59ee857c6e5e01da6
change-id: 20250313-jag-drop_caches_msg-c4fbfedb51f3

Best regards,
--
Joel Granados <joel.granados@xxxxxxxxxx>