diff options
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/btree.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/lib/btree.c b/lib/btree.c index f93a945274af..590facba2c50 100644 --- a/lib/btree.c +++ b/lib/btree.c | |||
| @@ -3,7 +3,7 @@ | |||
| 3 | * | 3 | * |
| 4 | * As should be obvious for Linux kernel code, license is GPLv2 | 4 | * As should be obvious for Linux kernel code, license is GPLv2 |
| 5 | * | 5 | * |
| 6 | * Copyright (c) 2007-2008 Joern Engel <joern@logfs.org> | 6 | * Copyright (c) 2007-2008 Joern Engel <joern@purestorage.com> |
| 7 | * Bits and pieces stolen from Peter Zijlstra's code, which is | 7 | * Bits and pieces stolen from Peter Zijlstra's code, which is |
| 8 | * Copyright 2007, Red Hat Inc. Peter Zijlstra | 8 | * Copyright 2007, Red Hat Inc. Peter Zijlstra |
| 9 | * GPLv2 | 9 | * GPLv2 |
| @@ -76,6 +76,8 @@ struct btree_geo btree_geo128 = { | |||
| 76 | }; | 76 | }; |
| 77 | EXPORT_SYMBOL_GPL(btree_geo128); | 77 | EXPORT_SYMBOL_GPL(btree_geo128); |
| 78 | 78 | ||
| 79 | #define MAX_KEYLEN (2 * LONG_PER_U64) | ||
| 80 | |||
| 79 | static struct kmem_cache *btree_cachep; | 81 | static struct kmem_cache *btree_cachep; |
| 80 | 82 | ||
| 81 | void *btree_alloc(gfp_t gfp_mask, void *pool_data) | 83 | void *btree_alloc(gfp_t gfp_mask, void *pool_data) |
| @@ -313,7 +315,7 @@ void *btree_get_prev(struct btree_head *head, struct btree_geo *geo, | |||
| 313 | { | 315 | { |
| 314 | int i, height; | 316 | int i, height; |
| 315 | unsigned long *node, *oldnode; | 317 | unsigned long *node, *oldnode; |
| 316 | unsigned long *retry_key = NULL, key[geo->keylen]; | 318 | unsigned long *retry_key = NULL, key[MAX_KEYLEN]; |
| 317 | 319 | ||
| 318 | if (keyzero(geo, __key)) | 320 | if (keyzero(geo, __key)) |
| 319 | return NULL; | 321 | return NULL; |
| @@ -639,8 +641,8 @@ EXPORT_SYMBOL_GPL(btree_remove); | |||
| 639 | int btree_merge(struct btree_head *target, struct btree_head *victim, | 641 | int btree_merge(struct btree_head *target, struct btree_head *victim, |
| 640 | struct btree_geo *geo, gfp_t gfp) | 642 | struct btree_geo *geo, gfp_t gfp) |
| 641 | { | 643 | { |
| 642 | unsigned long key[geo->keylen]; | 644 | unsigned long key[MAX_KEYLEN]; |
| 643 | unsigned long dup[geo->keylen]; | 645 | unsigned long dup[MAX_KEYLEN]; |
| 644 | void *val; | 646 | void *val; |
| 645 | int err; | 647 | int err; |
| 646 | 648 | ||
