NetBSD/sys/fs/puffs
manu 96c935e33b Add a mutex for operations that touch size (setattr, getattr, write, fsync).
This is required to avoid data corruption bugs, where a getattr slices
itself within a setattr operation, and sets the size to the stall value
it got from the filesystem. That value is smaller than the one set by
setattr, and the call to uvm_vnp_setsize() trigged a spurious truncate.
The result is a chunk of zeroed data in the file.

Such a situation can easily happen when the ioflush thread issue a
VOP_FSYNC/puffs_vnop_sync/flushvncache/dosetattrn while andother process
do a sys_stat/VOP_GETATTR/puffs_vnop_getattr.

This mutex on size operation can be removed the day we decide VOP_GETATTR
has to operated on a locked vnode, since the other operations that touch
size already require that.
2011-08-29 04:12:45 +00:00
..
files.puffs remember to add the new file to the build 2010-07-06 16:13:57 +00:00
Makefile
puffs_compat.c Do fhtovp compat translation only for fhtovp ops, not all vfs ops. 2010-07-11 11:17:27 +00:00
puffs_msgif.c avoid some uninitialised variable warnings from GCC. 2011-07-03 08:57:43 +00:00
puffs_msgif.h Add a flag to VOP_LISTEXTATTR(9) so that the vnode interface can tell the 2011-07-04 08:07:29 +00:00
puffs_node.c Add a mutex for operations that touch size (setattr, getattr, write, fsync). 2011-08-29 04:12:45 +00:00
puffs_subr.c
puffs_sys.h Add a mutex for operations that touch size (setattr, getattr, write, fsync). 2011-08-29 04:12:45 +00:00
puffs_vfsops.c Welcome to 5.99.53! Merge rmind-uvmplock branch: 2011-06-12 03:35:36 +00:00
puffs_vnops.c Add a mutex for operations that touch size (setattr, getattr, write, fsync). 2011-08-29 04:12:45 +00:00
TODO