On Tue, Jun 06, 2017 at 06:21:17PM +0800, Anand Jain wrote:
> On 06/03/17 00:58, David Sterba wrote:
> > Christoph pointed out that bio allocations backed by a bioset will never
> > fail.
> 
>   Looks like this feature comes when  __GFP_DIRECT_RECLAIM is
>   set and we aren't, such as [1]. Any idea why? Looks like I am
>   missing something ?

bio_alloc_bioset:

 406  *   When @bs is not NULL, if %__GFP_DIRECT_RECLAIM is set then bio_alloc 
will
 407  *   always be able to allocate a bio. This is due to the mempool 
guarantees.

> [1]
> -----
> static int submit_extent_page(int op, int op_flags, struct 
> extent_io_tree *tree,
> ::
> 
>   bio = btrfs_bio_alloc(bdev, sector, BIO_MAX_PAGES,
>                  GFP_NOFS | __GFP_HIGH);

GFP_NOFS contains __GFP_DIRECT_RECLAIM, so what's the problem? __GFP_HIGH
allows using the reserves, but should not otherwise change the constraints.
And it's use seems unnecessary, as far as I could track in the history.
--
To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to