OpenZFS on Linux and FreeBSD
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 Add build system 2010-08-31 13:41:27 -07:00
scripts Linux 2.6.38 compat, blkdev_get_by_path() 2011-02-23 12:29:38 -08:00
.gitignore Ignore unsigned module build products 2010-03-09 14:14:09 -08:00
AUTHORS Update AUTHORS file 2011-02-10 09:27:22 -08:00
COPYING Relocate COPYING+COPYRIGHT, remove README cruft 2008-12-01 15:34:53 -08:00
COPYRIGHT Update COPYRIGHT to reference zpios CDDL exceptions. 2010-05-18 14:25:28 -07:00
ChangeLog Add build system 2010-08-31 13:41:27 -07:00
DISCLAIMER Update COPYRIGHT and DISCLAIMER. 2010-05-18 10:32:23 -07:00
META Prep zfs-0.6.0-rc1 tag 2011-02-18 09:33:12 -08:00
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
OPENSOLARIS.LICENSE Add CDDL license file 2008-12-01 14:49:34 -08:00
README.markdown Fix markdown rendering 2010-09-15 09:09:37 -07:00
ZFS.RELEASE Update to onnv_147 2010-08-26 14:24:34 -07:00
autogen.sh Minor packaging fixes 2010-09-01 15:42:32 -07:00
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
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.spec.in Support custom build directories and move includes 2010-09-08 12:38:56 -07:00
zfs_config.h.in Linux 2.6.38 compat, blkdev_get_by_path() 2011-02-23 12:29:38 -08:00

README.markdown

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