Re: [PATCH] proc/proc_sysctl: Modify the order of scheduling function calls

From: Matthew Wilcox
Date: Sun Sep 04 2022 - 23:13:09 EST


On Mon, Sep 05, 2022 at 09:29:25AM +0800, Li zeming wrote:
> When the ctl_table_header object is judged to be valid, the scheduling
> check is performed again.

No, we want the check in all cases, even if the header is NULL.

> Signed-off-by: Li zeming <zeming@xxxxxxxxxxxx>
> ---
> fs/proc/proc_sysctl.c | 3 +--
> 1 file changed, 1 insertion(+), 2 deletions(-)
>
> diff --git a/fs/proc/proc_sysctl.c b/fs/proc/proc_sysctl.c
> index 50ba9e4fb284..36921e2ebeb0 100644
> --- a/fs/proc/proc_sysctl.c
> +++ b/fs/proc/proc_sysctl.c
> @@ -1729,11 +1729,10 @@ static void drop_sysctl_table(struct ctl_table_header *header)
> void unregister_sysctl_table(struct ctl_table_header * header)
> {
> int nr_subheaders;
> - might_sleep();
> -
> if (header == NULL)
> return;
>
> + might_sleep();
> nr_subheaders = count_subheaders(header->ctl_table_arg);
> if (unlikely(nr_subheaders > 1)) {
> struct ctl_table_header **subheaders;
> --
> 2.18.2
>