Re: [PATCH] quota: Check for register_shrinker() failure.

From: Michal Hocko
Date: Wed Nov 29 2017 - 08:42:59 EST


On Wed 29-11-17 22:34:50, Tetsuo Handa wrote:
> register_shrinker() might return -ENOMEM error since Linux 3.12.
> Call panic() as with other failure checks in this function if
> register_shrinker() failed.
>
> Signed-off-by: Tetsuo Handa <penguin-kernel@xxxxxxxxxxxxxxxxxxx>

Fixes: 1d3d4437eae1 ("vmscan: per-node deferred work")

> Cc: Jan Kara <jack@xxxxxxxx>
> Cc: Michal Hocko <mhocko@xxxxxxxx>

>From my very limited understanding of the code this looks correct.
FWIW
Reviewed-by: Michal Hocko <mhocko@xxxxxxxx>

> ---
> fs/quota/dquot.c | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/fs/quota/dquot.c b/fs/quota/dquot.c
> index 39f1b0b..1429f03 100644
> --- a/fs/quota/dquot.c
> +++ b/fs/quota/dquot.c
> @@ -2985,7 +2985,8 @@ static int __init dquot_init(void)
> pr_info("VFS: Dquot-cache hash table entries: %ld (order %ld,"
> " %ld bytes)\n", nr_hash, order, (PAGE_SIZE << order));
>
> - register_shrinker(&dqcache_shrinker);
> + if (register_shrinker(&dqcache_shrinker))
> + panic("Cannot register dquot shrinker");
>
> return 0;
> }
> --
> 1.8.3.1
>

--
Michal Hocko
SUSE Labs