Re: [PATCH 03/12] buffer: eliminate the need to call free_more_memory() in __getblk_slow()

From: Nikolay Borisov
Date: Thu Sep 28 2017 - 11:31:34 EST




On 27.09.2017 23:13, Jens Axboe wrote:
> Since the previous commit removed any case where grow_buffers()
> would return failure due to memory allocations, we can safely
> remove the case where we have to call free_more_memory() in
> this function.
>
> Since this is also the last user of free_more_memory(), kill
> it off completely.
>
> Signed-off-by: Jens Axboe <axboe@xxxxxxxxx>

Reviewed-by: Nikolay Borisov <nborisov@xxxxxxxx>

> ---
> fs/buffer.c | 23 -----------------------
> 1 file changed, 23 deletions(-)
>
> diff --git a/fs/buffer.c b/fs/buffer.c
> index 3b60cd8456db..bff571dc7bc3 100644
> --- a/fs/buffer.c
> +++ b/fs/buffer.c
> @@ -253,27 +253,6 @@ __find_get_block_slow(struct block_device *bdev, sector_t block)
> }
>
> /*
> - * Kick the writeback threads then try to free up some ZONE_NORMAL memory.
> - */
> -static void free_more_memory(void)
> -{
> - struct zoneref *z;
> - int nid;
> -
> - wakeup_flusher_threads(1024, WB_REASON_FREE_MORE_MEM);
> - yield();
> -
> - for_each_online_node(nid) {
> -
> - z = first_zones_zonelist(node_zonelist(nid, GFP_NOFS),
> - gfp_zone(GFP_NOFS), NULL);
> - if (z->zone)
> - try_to_free_pages(node_zonelist(nid, GFP_NOFS), 0,
> - GFP_NOFS, NULL);
> - }
> -}
> -
> -/*
> * I/O completion handler for block_read_full_page() - pages
> * which come unlocked at the end of I/O.
> */
> @@ -1086,8 +1065,6 @@ __getblk_slow(struct block_device *bdev, sector_t block,
> ret = grow_buffers(bdev, block, size, gfp);
> if (ret < 0)
> return NULL;
> - if (ret == 0)
> - free_more_memory();
> }
> }
>
>