bcache: Make sure to pass GFP_WAIT to mempool_alloc()
authorKent Overstreet <kmo@daterainc.com>
Mon, 19 May 2014 15:57:55 +0000 (08:57 -0700)
committerKent Overstreet <kmo@daterainc.com>
Mon, 4 Aug 2014 22:23:03 +0000 (15:23 -0700)
this was very wrong - mempool_alloc() only guarantees success with GFP_WAIT.
bcache uses GFP_NOWAIT in various other places where we have a fallback,
circuits must've gotten crossed when writing this code or something.

Signed-off-by: Kent Overstreet <kmo@daterainc.com>
drivers/md/bcache/btree.c

index 9dd9f1c4d0d97e088e7e9b99385aa6e4e5a50b38..e538d45fa65a9c45ec502cebc7e0634d36a6a5d2 100644 (file)
@@ -202,7 +202,7 @@ void bch_btree_node_read_done(struct btree *b)
        struct bset *i = btree_bset_first(b);
        struct btree_iter *iter;
 
-       iter = mempool_alloc(b->c->fill_iter, GFP_NOWAIT);
+       iter = mempool_alloc(b->c->fill_iter, GFP_NOIO);
        iter->size = b->c->sb.bucket_size / b->c->sb.block_size;
        iter->used = 0;