On Fri, May 01, 2015 at 10:17:05AM +0200, J. Hannken-Illjes wrote: > Our miscfs/syncfs originating from the softdep import is a pseudo > file system with one VOP. Its vnodes get used as a kind of marker > on the syncer worklist so the syncer may run lazy VFS_SYNC for > all mounted file systems. > > For this to work, it creates a vnode attached to the mount point > with a special (syncfs) operations vector. This concept breaks > some rules making it nearly is impossible to implement it with > the new vcache operations. > > I propose to completely remove miscfs/syncfs and > > - move the syncer sched_sync into kern/vfs_subr.c > - change the syncer to process the mountlist and VFS_SYNC as appropriate. > - use an API for mount points similiar to the API for vnodes. > > Diff at http://www.netbsd.org/~hannken/rm-miscfs-syncfs-1.diff > > Comments or objections anyone?
I think this is a good plan (having a "file system" to be the syncer is horribly weird) but I'm not entirely convinced that having marker mounts instead of marker vnodes is really the answer. But maybe it's an ok first step. (also I'd prefer to have a syncer that went by blocks/buffers than by files, but that's a much bigger change...) I don't have time to read the diff properly now (maybe tomorrow? hope springs eternal) but I think it would be a good plan to put the syncer in its own file. (and maybe we should put it in sys/vfs? I announced plans to start moving vfs-level code in there some time ago, and this seems like an opportunity) -- David A. Holland [email protected]
