Hello, On Thu, Jun 03, 2021 at 06:31:59PM -0700, Roman Gushchin wrote: > +bool cleanup_offline_cgwb(struct bdi_writeback *wb) > +{ > + struct inode_switch_wbs_context *isw; > + struct inode *inode; > + int nr; > + bool restart = false; > + > + isw = kzalloc(sizeof(*isw) + WB_MAX_INODES_PER_ISW * > + sizeof(struct inode *), GFP_KERNEL); > + if (!isw) > + return restart; > + > + /* no need to call wb_get() here: bdi's root wb is not refcounted */ > + isw->new_wb = &wb->bdi->wb; Not a deal breaker but I wonder whether it'd be safer to migrate it to the nearest live ancestor rather than directly to the root. As adaptive migration isn't something guaranteed, there's some chance that this can behave as escape-to-root path in pathological cases especially for inodes which may be written to by multiple cgroups. Thanks. -- tejun