Messages in this thread | | | Date | Wed, 20 Sep 2017 16:41:59 +0200 | From | Jan Kara <> | Subject | Re: [PATCH 5/6] fs-writeback: move nr_pages == 0 logic to one location |
| |
On Tue 19-09-17 13:53:06, Jens Axboe wrote: > Now that we have no external callers of wb_start_writeback(), > we can move the nr_pages == 0 logic into that function. > > Signed-off-by: Jens Axboe <axboe@kernel.dk>
...
> +static unsigned long get_nr_dirty_pages(void) > +{ > + return global_node_page_state(NR_FILE_DIRTY) + > + global_node_page_state(NR_UNSTABLE_NFS) + > + get_nr_dirty_inodes(); > +} > + > static void wb_start_writeback(struct bdi_writeback *wb, long nr_pages, > bool range_cyclic, enum wb_reason reason) > { > @@ -942,6 +953,12 @@ static void wb_start_writeback(struct bdi_writeback *wb, long nr_pages, > return; > > /* > + * If someone asked for zero pages, we write out the WORLD > + */ > + if (!nr_pages) > + nr_pages = get_nr_dirty_pages(); > +
So for 'wb' we have a better estimate of the amount we should write - use wb_stat_sum(wb, WB_RECLAIMABLE) statistics - that is essentially dirty + unstable_nfs broken down to bdi_writeback.
Honza -- Jan Kara <jack@suse.com> SUSE Labs, CR
| |