[Devel] [PATCH RHEL7 COMMIT] lib/radix-tree: fixup for BUG_ON in __radix_tree_insert()

Konstantin Khorenko khorenko at virtuozzo.com
Fri Dec 27 15:04:53 MSK 2019


The commit is pushed to "branch-rh7-3.10.0-1062.7.1.vz7.130.x-ovz" and will appear at https://src.openvz.org/scm/ovz/vzkernel.git
after rh7-3.10.0-1062.7.1.vz7.130.6
------>
commit 5ddc0f15746712d643895dd4756e330f4a26ffeb
Author: Vasily Averin <vvs at virtuozzo.com>
Date:   Fri Dec 27 15:04:51 2019 +0300

    lib/radix-tree: fixup for BUG_ON in __radix_tree_insert()
    
    __radix_tree_insert() triggers BUG_ON if root have set any prev tag
    bits. Let's ignore prev tag bits.
    
    Fixes: c68ade41961d4 ("radix-tree: save previous gfp_t tags in radix tree
    for dirty memory accounting")
    
    https://jira.sw.ru/browse/PSBM-100579
    Signed-off-by: Vasily Averin <vvs at virtuozzo.com>
---
 lib/radix-tree.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/lib/radix-tree.c b/lib/radix-tree.c
index 3a8dc9a84f032..eaad271034c24 100644
--- a/lib/radix-tree.c
+++ b/lib/radix-tree.c
@@ -167,7 +167,7 @@ static inline int root_tag_get(struct radix_tree_root *root, unsigned int tag)
 
 static inline unsigned root_tags_get(struct radix_tree_root *root)
 {
-	return (__force unsigned)root->gfp_mask >> __GFP_BITS_SHIFT;
+	return (__force unsigned)(root->gfp_mask & RADIX_ROOT_TAG_MASK) >> __GFP_BITS_SHIFT;
 }
 
 static inline void prev_tag_set(struct radix_tree_root *root, unsigned int tag)



More information about the Devel mailing list