From ad45b188f5611724f0b5e315a71b37033e9cd682 Mon Sep 17 00:00:00 2001 From: David Howells Date: Thu, 19 Nov 2009 18:11:14 +0000 Subject: [PATCH] --- yaml --- r: 168825 b: refs/heads/master c: b34df792b4e9e311db47fad27949095d0629c197 h: refs/heads/master i: 168823: 214ca9b467a383cb05600823c7c1bb2be3d791b2 v: v3 --- [refs] | 2 +- trunk/fs/fscache/cookie.c | 4 +++- trunk/lib/radix-tree.c | 3 +++ 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/[refs] b/[refs] index d90bbebeb7c5..fbf7c1bc7d72 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 7e311a207d596b9273d811149d6e3e14f05ac4c0 +refs/heads/master: b34df792b4e9e311db47fad27949095d0629c197 diff --git a/trunk/fs/fscache/cookie.c b/trunk/fs/fscache/cookie.c index b1870a6c2cd3..e6854f5222f5 100644 --- a/trunk/fs/fscache/cookie.c +++ b/trunk/fs/fscache/cookie.c @@ -102,7 +102,9 @@ struct fscache_cookie *__fscache_acquire_cookie( cookie->netfs_data = netfs_data; cookie->flags = 0; - INIT_RADIX_TREE(&cookie->stores, GFP_NOFS); + /* radix tree insertion won't use the preallocation pool unless it's + * told it may not wait */ + INIT_RADIX_TREE(&cookie->stores, GFP_NOFS & ~__GFP_WAIT); switch (cookie->def->type) { case FSCACHE_COOKIE_TYPE_INDEX: diff --git a/trunk/lib/radix-tree.c b/trunk/lib/radix-tree.c index 23abbd93cae1..ae6106855561 100644 --- a/trunk/lib/radix-tree.c +++ b/trunk/lib/radix-tree.c @@ -200,6 +200,9 @@ radix_tree_node_free(struct radix_tree_node *node) * ensure that the addition of a single element in the tree cannot fail. On * success, return zero, with preemption disabled. On error, return -ENOMEM * with preemption not disabled. + * + * To make use of this facility, the radix tree must be initialised without + * __GFP_WAIT being passed to INIT_RADIX_TREE(). */ int radix_tree_preload(gfp_t gfp_mask) {