On Wed 02-06-21 17:55:15, Roman Gushchin wrote: > Split out the functional part of the inode_switch_wbs_work_fn() > function as inode_do switch_wbs() to reuse it later for switching ^ underscore here > inodes attached to dying cgwbs. > > This commit doesn't bring any functional changes. > > Signed-off-by: Roman Gushchin <guro@xxxxxx> The patch looks good. Feel free to add: Reviewed-by: Jan Kara <jack@xxxxxxx> Honza > --- > fs/fs-writeback.c | 19 +++++++++++-------- > 1 file changed, 11 insertions(+), 8 deletions(-) > > diff --git a/fs/fs-writeback.c b/fs/fs-writeback.c > index 09d2770449ef..212494d89cc2 100644 > --- a/fs/fs-writeback.c > +++ b/fs/fs-writeback.c > @@ -351,15 +351,12 @@ static void bdi_up_write_wb_switch_rwsem(struct backing_dev_info *bdi) > up_write(&bdi->wb_switch_rwsem); > } > > -static void inode_switch_wbs_work_fn(struct work_struct *work) > +static void inode_do_switch_wbs(struct inode *inode, > + struct bdi_writeback *new_wb) > { > - struct inode_switch_wbs_context *isw = > - container_of(to_rcu_work(work), struct inode_switch_wbs_context, work); > - struct inode *inode = isw->inode; > struct backing_dev_info *bdi = inode_to_bdi(inode); > struct address_space *mapping = inode->i_mapping; > struct bdi_writeback *old_wb = inode->i_wb; > - struct bdi_writeback *new_wb = isw->new_wb; > XA_STATE(xas, &mapping->i_pages, 0); > struct page *page; > bool switched = false; > @@ -470,11 +467,17 @@ static void inode_switch_wbs_work_fn(struct work_struct *work) > wb_wakeup(new_wb); > wb_put(old_wb); > } > - wb_put(new_wb); > +} > > - iput(inode); > - kfree(isw); > +static void inode_switch_wbs_work_fn(struct work_struct *work) > +{ > + struct inode_switch_wbs_context *isw = > + container_of(to_rcu_work(work), struct inode_switch_wbs_context, work); > > + inode_do_switch_wbs(isw->inode, isw->new_wb); > + wb_put(isw->new_wb); > + iput(isw->inode); > + kfree(isw); > atomic_dec(&isw_nr_in_flight); > } > > -- > 2.31.1 > -- Jan Kara <jack@xxxxxxxx> SUSE Labs, CR