freebsd-nq/module
Brian Behlendorf adf2e8778e Fix O_APPEND Corruption
Due to an uninitialized variable files opened with O_APPEND may
overwrite the start of the file rather than append to it.  This
was introduced accidentally when I removed the Solaris vnodes.

The zfs_range_lock_writer() function used to key off zf->z_vnode
to determine if a znode_t was for a zvol of zpl object.  With
the removal of vnodes this was replaced by the flag zp->z_is_zvol.
This flag was used to control the append behavior for range locks.

Unfortunately, this value was never properly initialized after
the vnode removal.  However, because most of memory is usually
zeros it happened to be set correctly most of the time making
the bug appear racy.  Properly initializing zp->z_is_zvol to
zero completely resolves the problem with O_APPEND.

Closes #126
2011-03-09 13:31:00 -08:00
..
avl Support custom build directories and move includes 2010-09-08 12:38:56 -07:00
nvpair Support custom build directories and move includes 2010-09-08 12:38:56 -07:00
unicode Support custom build directories and move includes 2010-09-08 12:38:56 -07:00
zcommon Add basic uio support 2011-02-10 09:21:43 -08:00
zfs Fix O_APPEND Corruption 2011-03-09 13:31:00 -08:00
zpios Linux 2.6.36 compat, use fops->unlocked_ioctl() 2010-11-10 17:01:08 -08:00
.gitignore Add .gitignore files to exclude build products 2010-01-08 11:35:17 -08:00
Makefile.in Support custom build directories and move includes 2010-09-08 12:38:56 -07:00