X-Git-Url: https://git.proxmox.com/?a=blobdiff_plain;f=lib%2Fassoc_array.c;h=d3f23a32107d18c745ebbe7f5b13ae6d966e47e1;hb=92104f1813e97256316c53eda6ea9c1fec91bb4b;hp=b77d51da8c73def55d1aea5ca6c34161652981a0;hpb=615af08e04f5ab25c0469f852825ea3a41928f43;p=mirror_ubuntu-bionic-kernel.git diff --git a/lib/assoc_array.c b/lib/assoc_array.c index b77d51da8c73..d3f23a32107d 100644 --- a/lib/assoc_array.c +++ b/lib/assoc_array.c @@ -781,9 +781,11 @@ all_leaves_cluster_together: new_s0->index_key[i] = ops->get_key_chunk(index_key, i * ASSOC_ARRAY_KEY_CHUNK_SIZE); - blank = ULONG_MAX << (level & ASSOC_ARRAY_KEY_CHUNK_MASK); - pr_devel("blank off [%zu] %d: %lx\n", keylen - 1, level, blank); - new_s0->index_key[keylen - 1] &= ~blank; + if (level & ASSOC_ARRAY_KEY_CHUNK_MASK) { + blank = ULONG_MAX << (level & ASSOC_ARRAY_KEY_CHUNK_MASK); + pr_devel("blank off [%zu] %d: %lx\n", keylen - 1, level, blank); + new_s0->index_key[keylen - 1] &= ~blank; + } /* This now reduces to a node splitting exercise for which we'll need * to regenerate the disparity table.