Re: [PATCH] bcache: Make sure to pass GFP_WAIT to mempool_alloc()

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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



[Index of Archives]     [Linux Kernel]     [Kernel Development Newbies]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Hiking]     [Linux Kernel]     [Linux SCSI]