On Thu, Jan 15, 2015 at 05:29:32PM +0100, Gabriel de Perthuis wrote: > Oh, here's the commit id: bcf090e0040e30f8409e6a535a01e6473afb096f > Thank you Gabriel, I'm queuing this for the 3.16 kernel. Cheers, -- Luís > Le 15/01/2015 17:26, Gabriel de Perthuis a écrit : > >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@xxxxxxxxxxxxx> > >--- > > > >The bug was introduced in v3.11, fixed in v3.17. > > > >Jens mentioned bcache has many stable@ candidates previously: > >https://lkml.org/lkml/2014/9/5/360 > > > >I'm cherry-picking this fix because I was getting crashes. > > > >--- > > drivers/md/bcache/btree.c | 2 +- > > 1 file changed, 1 insertion(+), 1 deletion(-) > > > >diff --git a/drivers/md/bcache/btree.c b/drivers/md/bcache/btree.c > >index 9dd9f1c..e538d45 100644 > >--- a/drivers/md/bcache/btree.c > >+++ b/drivers/md/bcache/btree.c > >@@ -200,11 +200,11 @@ void bch_btree_node_read_done(struct btree *b) > > { > > const char *err = "bad btree header"; > > 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; > > #ifdef CONFIG_BCACHE_DEBUG > > iter->b = &b->keys; > > -- > To unsubscribe from this list: send the line "unsubscribe stable" in > the body of a message to majordomo@xxxxxxxxxxxxxxx > More majordomo info at http://vger.kernel.org/majordomo-info.html -- To unsubscribe from this list: send the line "unsubscribe stable" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html