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

Reply via email to