Re: [PATCH block/for-linus] writeback: flush inode cgroup wb switches instead of pinning super_block

From: Al Viro
Date: Mon Feb 29 2016 - 16:06:24 EST


On Mon, Feb 29, 2016 at 03:58:37PM -0500, Tejun Heo wrote:
> On Mon, Feb 29, 2016 at 08:54:28PM +0000, Al Viro wrote:
> > > This patch removes the problematic super_block pinning and instead
> > > makes generic_shutdown_super() flush in-flight wb switches. wb
> > > switches are now executed on a dedicated isw_wq so that they can be
> > > flushed and isw_nr_in_flight keeps track of the number of in-flight wb
> > > switches so that flushing can be avoided in most cases.
> >
> > Wait a bloody minute. What's to prevent shrink_dcache_for_umount() from
> > dirtying more inodes, triggering more of the same?
>
> Hmmm? The flushing is done after shrink_dcache_for_umount() and
> sync_filesystems(). Aren't inodes supposed to stay clean after that?

s/shrink_dcache_for_umount/fsnotify_unmount_inodes/ - sorry.