]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
coredump: move core_pipe_count to global variable
authorChristian Brauner <brauner@kernel.org>
Thu, 12 Jun 2025 13:25:26 +0000 (15:25 +0200)
committerChristian Brauner <brauner@kernel.org>
Mon, 16 Jun 2025 15:01:23 +0000 (17:01 +0200)
The pipe coredump counter is a static local variable instead of a global
variable like all of the rest. Move it to a global variable so it's all
consistent.

Link: https://lore.kernel.org/20250612-work-coredump-massage-v1-12-315c0c34ba94@kernel.org
Signed-off-by: Christian Brauner <brauner@kernel.org>
fs/coredump.c

index 4afaf792a12e9cb29238d39e1c474bca955ba550..c863e053b1f8ad515e285b5768aa88878a2b057d 100644 (file)
@@ -82,6 +82,7 @@ static unsigned int core_sort_vma;
 static char core_pattern[CORENAME_MAX_SIZE] = "core";
 static int core_name_size = CORENAME_MAX_SIZE;
 unsigned int core_file_note_size_limit = CORE_FILE_NOTE_SIZE_DEFAULT;
+static atomic_t core_pipe_count = ATOMIC_INIT(0);
 
 enum coredump_type_t {
        COREDUMP_FILE           = 1,
@@ -981,7 +982,6 @@ void vfs_coredump(const kernel_siginfo_t *siginfo)
        size_t *argv = NULL;
        int argc = 0;
        bool core_dumped = false;
-       static atomic_t core_dump_count = ATOMIC_INIT(0);
        struct coredump_params cprm = {
                .siginfo = siginfo,
                .limit = rlimit(RLIMIT_CORE),
@@ -1057,7 +1057,7 @@ void vfs_coredump(const kernel_siginfo_t *siginfo)
                }
                cprm.limit = RLIM_INFINITY;
 
-               cn.core_pipe_limit = atomic_inc_return(&core_dump_count);
+               cn.core_pipe_limit = atomic_inc_return(&core_pipe_count);
                if (core_pipe_limit && (core_pipe_limit < cn.core_pipe_limit)) {
                        coredump_report_failure("over core_pipe_limit, skipping core dump");
                        goto close_fail;
@@ -1171,7 +1171,7 @@ close_fail:
                filp_close(cprm.file, NULL);
        if (cn.core_pipe_limit) {
                VFS_WARN_ON_ONCE(cn.core_type != COREDUMP_PIPE);
-               atomic_dec(&core_dump_count);
+               atomic_dec(&core_pipe_count);
        }
 fail_unlock:
        kfree(argv);