]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
lib/rhashtable: cleanup fallback check in bucket_table_alloc()
authorDavidlohr Bueso <dave@stgolabs.net>
Tue, 6 Aug 2024 15:39:27 +0000 (08:39 -0700)
committerAndrew Morton <akpm@linux-foundation.org>
Mon, 2 Sep 2024 03:43:32 +0000 (20:43 -0700)
Upon allocation failure, the current check with the nofail bits is
unnecessary, and further stands in the way of discouraging direct use of
__GFP_NOFAIL.  Remove this and replace with the proper way of determining
if doing a non-blocking allocation for the nested table case.

Link: https://lkml.kernel.org/r/20240806153927.184515-1-dave@stgolabs.net
Signed-off-by: Davidlohr Bueso <dave@stgolabs.net>
Suggested-by: Michal Hocko <mhocko@suse.com>
Cc: Davidlohr Bueso <dave@stgolabs.net>
Cc: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
lib/rhashtable.c

index dbbed19f8fff99f4fb58889a76a40eaac330f51a..6c902639728b767cc3ee42c61256d2e9618e6ce7 100644 (file)
@@ -189,7 +189,7 @@ static struct bucket_table *bucket_table_alloc(struct rhashtable *ht,
 
        size = nbuckets;
 
-       if (tbl == NULL && (gfp & ~__GFP_NOFAIL) != GFP_KERNEL) {
+       if (tbl == NULL && !gfpflags_allow_blocking(gfp)) {
                tbl = nested_bucket_table_alloc(ht, nbuckets, gfp);
                nbuckets = 0;
        }