On Fri, Nov 30, 2018 at 10:26:50AM +1100, NeilBrown wrote:
>
> diff --git a/lib/rhashtable.c b/lib/rhashtable.c
> index 30526afa8343..852ffa5160f1 100644
> --- a/lib/rhashtable.c
> +++ b/lib/rhashtable.c
> @@ -1179,8 +1179,7 @@ struct rhash_head __rcu **rht_bucket_nested(const 
> struct bucket_table *tbl,
>                                           unsigned int hash)
>  {
>       const unsigned int shift = PAGE_SHIFT - ilog2(sizeof(void *));
> -     static struct rhash_head __rcu *rhnull =
> -             (struct rhash_head __rcu *)NULLS_MARKER(0);
> +     static struct rhash_head __rcu *rhnull;
>       unsigned int index = hash & ((1 << tbl->nest) - 1);
>       unsigned int size = tbl->size >> tbl->nest;
>       unsigned int subhash = hash;
> @@ -1198,8 +1197,11 @@ struct rhash_head __rcu **rht_bucket_nested(const 
> struct bucket_table *tbl,
>               subhash >>= shift;
>       }
>  
> -     if (!ntbl)
> +     if (!ntbl) {
> +             if (!rhnull)
> +                     INIT_RHT_NULLS_HEAD(rhnull);
>               return &rhnull;
> +     }

I think you missed my earlier reply beause of bouncing emails.

I think this is unnecessary because

        RHT_NULLS_MARKER(RHT_NULLS_MARKER(0)) = RHT_NULLS_MARKER(0)

Thanks,
-- 
Email: Herbert Xu <herb...@gondor.apana.org.au>
Home Page: http://gondor.apana.org.au/~herbert/
PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt

Reply via email to