On Wed, Jun 20, 2007 at 09:43:01PM +0000, Ricardo Correia wrote: > Something that might be useful knowing: zfs-fuse uses the block devices as if > it were a normal file and it calls fsync() on the file descriptor when > necessary (like in > vdev_file.c), but this only guarantees that the kernel buffers are flushed, > it doesn't actually send the flush command to the disk (unfortunately there's > no > DKIOCFLUSHWRITECACHE ioctl equivalent in Linux). Anyway, the possibility that > this is the problem seems very remote to me (and it wouldn't explain the > second case).
Can't help with other problems, but let me clarify this one. Flushing disk's write cache is only important in a event of power failure. Disks like to reorder requests and cache them, so you may end up in situation where a pointer in uber block was updated, but new block wasn't yet written to the disk. But until you have power, the lack of DKIOCFLUSHWRITECACHE shouldn't cause any problems. PS. In FreeBSD we use BIO_FLUSH for flushing write cache, which I implemented as a part of different project (gjournal). -- Pawel Jakub Dawidek http://www.wheel.pl pjd at FreeBSD.org http://www.FreeBSD.org FreeBSD committer Am I Evil? Yes, I Am! -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 187 bytes Desc: not available URL: <http://mail.opensolaris.org/pipermail/zfs-code/attachments/20070621/c4b93774/attachment.bin>