OpenZFS on Linux and FreeBSD
Go to file
Brian Behlendorf 8b4f9a2d55 Fix readlink(2)
This patch addresses three issues related to symlinks.

1) Revert the zfs_follow_link() function to a modified version
of the original zfs_readlink().  The only changes from the
original OpenSolaris version relate to using Linux types.
For the moment this means no vnode's and no zfsvfs_t.  The
caller zpl_follow_link() was also updated accordingly.  This
change was reverted because it was slightly gratuitious.

2) Update zpl_follow_link() to use local variables for the
link buffer.  I'd forgotten that iov.iov_base is updated by
uiomove() so after the call to zfs_readlink() it can not longer
be used.  We need our own private copy of the link pointer.

3) Allocate MAXPATHLEN instead of MAXPATHLEN+1.  By default
MAXPATHLEN is 4096 bytes which is a full page, adding one to
it pushes it slightly over a page.  That means you'll likely
end up allocating 2 pages which is wasteful of memory and
possibly slightly slower.
2011-02-16 15:54:55 -08:00
cmd Linux 2.6.36 compat, sops->evict_inode() 2011-02-11 13:47:51 -08:00
config Linux 2.6.36 compat, sops->evict_inode() 2011-02-11 13:47:51 -08:00
etc Linux 2.6.36 compat, sops->evict_inode() 2011-02-11 13:47:51 -08:00
include Linux 2.6.36 compat, sops->evict_inode() 2011-02-11 13:47:51 -08:00
lib Suppress share error on mount 2011-02-16 11:05:55 -08:00
man Linux 2.6.36 compat, sops->evict_inode() 2011-02-11 13:47:51 -08:00
module Fix readlink(2) 2011-02-16 15:54:55 -08:00
patches Add build system 2010-08-31 13:41:27 -07:00
scripts Update 'zfs.sh -u' to umount all zfs filesystems 2011-02-16 11:10:31 -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 Update META to 0.6.0 2011-02-10 09:27:22 -08:00
Makefile.am Support custom build directories and move includes 2010-09-08 12:38:56 -07:00
Makefile.in Linux 2.6.36 compat, sops->evict_inode() 2011-02-11 13:47:51 -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 Linux 2.6.36 compat, sops->evict_inode() 2011-02-11 13:47:51 -08:00
configure.ac Add Linux Compat Infrastructure 2011-02-10 09:25:10 -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.36 compat, sops->evict_inode() 2011-02-11 13:47:51 -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