• Andrew Morton's avatar
    [PATCH] handle overflows in radix_tree_gang_lookup() · 7404e32c
    Andrew Morton authored
    Fix a radix-tree bug spotted by Vladimir Saveliev <vs@namesys.com>.
    
    Each step in the radix tree spans six address bits.  So a height=6 tree
    spans 36-bits worth of nodes.
    
    On 32-bit machines radix_tree_gang_lookup() doesn't handle this right -
    at the 12TB mark it wraps back to zero, and returns pages at quite
    wrong indices.
    
    The patch fixes all that up, and tidies a couple of things.
    
    A user-space test harness was developed so that the code can be sanely
    tested.  It is at
    
    	http://www.zip.com.au/~akpm/linux/patches/stuff/rtth.tar.gz
    7404e32c
radix-tree.c 9.16 KB