On Mon, Oct 03, 2011 at 09:27:35AM +0200, Reinoud Zandijk wrote: > > why is the VOP_FSYNC call necessary? > > The sparse region search code depends on the indirect blocks being > correctly written out as it traverses them. If the file is still > `dirty' all the indirect blocks are present as negative indices so > the normal FFS code works but their indirect blocks, when addressed > with their disc addresses, are not up-to-date.
...so read them out of the cache. > The FFS sparse region search code depends on the indirect blocks to > see where actual data is recorded and needs the indirect blocks to > be up-to-date. A range sync with only the negative range might also > suffice but since most if not all of the applications of this code > is dealing with backup/processing the VOP_FSYNC() is normally a > NOP. This shouldn't need to be there for what is purely a read operation on metadata. -- David A. Holland dholl...@netbsd.org