diff options
Diffstat (limited to 'lib/btree.c')
| -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 @@   *   * As should be obvious for Linux kernel code, license is GPLv2   * - * Copyright (c) 2007-2008 Joern Engel <joern@logfs.org> + * Copyright (c) 2007-2008 Joern Engel <joern@purestorage.com>   * Bits and pieces stolen from Peter Zijlstra's code, which is   * Copyright 2007, Red Hat Inc. Peter Zijlstra   * GPLv2 @@ -76,6 +76,8 @@ struct btree_geo btree_geo128 = {  };  EXPORT_SYMBOL_GPL(btree_geo128); +#define MAX_KEYLEN	(2 * LONG_PER_U64) +  static struct kmem_cache *btree_cachep;  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,  {  	int i, height;  	unsigned long *node, *oldnode; -	unsigned long *retry_key = NULL, key[geo->keylen]; +	unsigned long *retry_key = NULL, key[MAX_KEYLEN];  	if (keyzero(geo, __key))  		return NULL; @@ -639,8 +641,8 @@ EXPORT_SYMBOL_GPL(btree_remove);  int btree_merge(struct btree_head *target, struct btree_head *victim,  		struct btree_geo *geo, gfp_t gfp)  { -	unsigned long key[geo->keylen]; -	unsigned long dup[geo->keylen]; +	unsigned long key[MAX_KEYLEN]; +	unsigned long dup[MAX_KEYLEN];  	void *val;  	int err;  | 
