OpenZFS on Linux and FreeBSD
Go to file
Ricardo M. Correia 2c79a2fa6a Fix a few zdb bugs when trying to open a pool
Specifically, the following bugs are fixed in this patch:

1) zdb wasn't getting the correct device size when the vdev is a
block device.  In Solaris, fstat64() returns the device size but
in Linux an ioctl() is needed.

2) We were opening block devices with O_DIRECT, which caused pread64()
to fail with EINVAL due to memory alignment issues.  This was fixed by
the previous umem cache alignment fix in stub implementation to align
objects correctly.  But we still needed to add a check for the error here.

3) We also make sure that we don't try to open a block device in write
mode in userspace.  This shouldn't happen, because zdb opens devices
in read-only mode, and ztest only uses files.
2010-03-10 12:03:48 -08:00
cmd Merge commit 'refs/top-bases/linux-user-disk' into linux-user-disk 2010-03-09 12:31:18 -08:00
config Check for spl in ../spl if not found in install path 2010-03-08 16:04:25 -08:00
etc Split the udev rule from a specific configuration 2010-03-01 16:51:21 -08:00
lib Fix a few zdb bugs when trying to open a pool 2010-03-10 12:03:48 -08:00
man Add man pages to the build system and packages. 2009-12-11 16:49:25 -08:00
module Merge commit 'refs/top-bases/zfs-branch' into zfs-branch 2010-03-09 13:24:30 -08:00
patches Add e2fsprogs patch for detecting ZFS uberblocks until it appears upstream. 2009-11-02 15:04:43 -08:00
scripts Fix scripts to work when invoked from other directories. 2010-03-09 14:50:15 -08:00
.gitignore Ignore unsigned module build products 2010-03-09 14:14:09 -08:00
.topdeps New TopGit dependency: fix-error-handling 2010-03-10 09:54:41 -08:00
.topmsg Fix some incorrect error handling. 2010-03-10 09:53:53 -08:00
AUTHORS Refresh zfs-branch 2008-12-05 09:46:11 -08:00
COPYING Refresh for consistency with COPYRIGHT 2009-06-08 11:59:13 -07:00
COPYRIGHT Readd accidentally dropped COPYRIGHT, it just references the 2009-06-08 11:01:13 -07:00
ChangeLog Prep for 0.4.7 tag, updated META and ChangeLog. 2009-11-24 12:43:40 -08:00
DISCLAIMER Initial Linux ZFS GIT Repo 2008-11-20 12:01:55 -08:00
GIT Refresh type in topgit git://* reference 2009-01-26 21:58:32 -08:00
META Configure checks for kernel build options incompatible with the license 2010-03-08 10:27:42 -08:00
Makefile.am Split the udev rule from a specific configuration 2010-03-01 16:51:21 -08:00
OPENSOLARIS.LICENSE Add CDDL license file 2008-12-01 14:49:34 -08:00
README Refresh README 2009-01-20 16:16:57 -08:00
TODO Prep for 0.4.6 tag, updated META, ChangeLog, and TODO. 2009-11-02 13:03:59 -08:00
ZFS.RELEASE Rebase master to b121 2009-08-18 11:43:27 -07:00
autogen.sh Core target arch support for conditional compilation of SUBDIRs 2009-06-08 16:07:43 -07:00
configure.ac Split the udev rule from a specific configuration 2010-03-01 16:51:21 -08:00
zfs-modules.spec.in Fix definitions for the unknown distro/installation 2010-03-08 16:20:20 -08:00
zfs.spec.in Split the udev rule from a specific configuration 2010-03-01 16:51:21 -08:00
zfs_unconfig.h Distro friendly build system / packaging improvements. 2009-07-01 10:53:05 -07:00

README

============================ ZFS KERNEL BUILD ============================

1) Build the SPL (Solaris Porting Layer) module which is designed to
   provide many Solaris APIs in the Linux kernel which are needed
   by ZFS.  To build the SPL:

        tar -xzf spl-x.y.z.tgz
        cd spl-x.y.z
        ./configure --with-linux=<kernel src>
        make
        make check <as root>

2) Build ZFS, this port is based on build specified by the ZFS.RELEASE
   file.  You will need to have both the kernel and SPL source available.
   To build ZFS for use as a Linux kernel module.

        tar -xzf zfs-x.y.z.tgz
        cd zfs-x.y.z
        ./configure --with-linux=<kernel src> \
                    --with-spl=<spl src>
        make
        make check <as root>

============================ ZPIOS TEST SUITE ============================

3) Provided is an in-kernel test application called zpios which can be
   used to simulate a parallel IO load.  It may be used as a stress 
   or performance test for your configuration.  To simplify testing
   scripts provided in the scripts/ directory which provide a few
   pre-built zpool configurations and zpios test cases.  By default
   'make check' as root will run a simple test against several small
   loopback devices created in /tmp/.

       cd scripts
       ./zfs.sh					# Load the ZFS/SPL modules
       ./zpios.sh -c lo-raid0.sh -t tiny -v 	# Tiny zpios loopback test
       ./zfs.sh -u				# Unload the ZFS/SPL modules

Enjoy,
Brian Behlendorf <behlendorf1@llnl.gov>