On Mon 29-06-20 13:18:16, Matthew Wilcox wrote: > On Mon, Jun 29, 2020 at 08:08:51AM +0300, Mike Rapoport wrote: > > > @@ -886,8 +868,12 @@ static struct dm_buffer *__alloc_buffer_wait_no_callback(struct dm_bufio_client > > > return NULL; > > > > > > if (dm_bufio_cache_size_latch != 1 && !tried_noio_alloc) { > > > + unsigned noio_flag; > > > + > > > dm_bufio_unlock(c); > > > - b = alloc_buffer(c, GFP_NOIO | __GFP_NORETRY | __GFP_NOMEMALLOC | __GFP_NOWARN); > > > + noio_flag = memalloc_noio_save(); > > > > I've read the series twice and I'm still missing the definition of > > memalloc_noio_save(). > > > > And also it would be nice to have a paragraph about it in > > Documentation/core-api/memory-allocation.rst > > Documentation/core-api/gfp_mask-from-fs-io.rst:``memalloc_nofs_save``, ``memalloc_nofs_restore`` respectively ``memalloc_noio_save``, > Documentation/core-api/gfp_mask-from-fs-io.rst: :functions: memalloc_noio_save memalloc_noio_restore > Documentation/core-api/gfp_mask-from-fs-io.rst:allows nesting so it is safe to call ``memalloc_noio_save`` or The patch is adding memalloc_nowait* and I suspect Mike had that in mind, which would be a fair request. Btw. we are missing memalloc_nocma* documentation either - I was just reminded of its existence today... -- Michal Hocko SUSE Labs