freebsd with flexible iflib nic queues
Go to file
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
cmd Add xvattr support 2011-03-02 11:43:50 -08:00
config Make Missing Modules.symvers Fatal 2011-03-07 13:09:20 -08:00
etc Use udev to create /dev/zvol/[dataset_name] links 2011-02-25 09:43:19 -08:00
include Range lock performance improvements 2011-03-08 12:44:06 -08:00
lib Add missing libspl+libzpool libs to libzfs 2011-03-03 15:48:57 -08:00
man Linux 2.6.38 compat, blkdev_get_by_path() 2011-02-23 12:29:38 -08:00
module Fix O_APPEND Corruption 2011-03-09 13:31:00 -08:00
patches
scripts Linux 2.6.38 compat, blkdev_get_by_path() 2011-02-23 12:29:38 -08:00
.gitignore
AUTHORS Update AUTHORS file 2011-02-10 09:27:22 -08:00
autogen.sh
ChangeLog
configure Make Missing Modules.symvers Fatal 2011-03-07 13:09:20 -08:00
configure.ac Use udev to create /dev/zvol/[dataset_name] links 2011-02-25 09:43:19 -08:00
COPYING
COPYRIGHT
DISCLAIMER
Makefile.am Support custom build directories and move includes 2010-09-08 12:38:56 -07:00
Makefile.in Linux 2.6.38 compat, blkdev_get_by_path() 2011-02-23 12:29:38 -08:00
META Prep zfs-0.6.0-rc1 tag 2011-02-18 09:33:12 -08:00
OPENSOLARIS.LICENSE
README.markdown Fix markdown rendering 2010-09-15 09:09:37 -07:00
zfs_config.h.in Linux 2.6.38 compat, blkdev_get_by_path() 2011-02-23 12:29:38 -08:00
zfs-modules.spec.in Use top level object directory in zfs-module.spec 2010-09-10 12:33:31 -07:00
zfs-script-config.sh.in Unconditionally load core kernel modules 2010-11-11 11:38:25 -08:00
ZFS.RELEASE
zfs.spec.in Support custom build directories and move includes 2010-09-08 12:38:56 -07:00

Native ZFS for Linux! ZFS is an advanced file system and volume manager which was originally developed for Solaris. It has been successfully ported to FreeBSD and now there is a functional Linux ZFS kernel port too. The port currently includes a fully functional and stable SPA, DMU, and ZVOL with a ZFS Posix Layer (ZPL) on the way!

$ ./configure
$ make pkg

Full documentation for building, configuring, and using ZFS can be found at: http://zfsonlinux.org