OpenZFS on Linux and FreeBSD
Go to file
Etienne Dechamps 30930fba21 Add support for DISCARD to ZVOLs.
DISCARD (REQ_DISCARD, BLKDISCARD) is useful for thin provisioning.
It allows ZVOL clients to discard (unmap, trim) block ranges from
a ZVOL, thus optimizing disk space usage by allowing a ZVOL to
shrink instead of just grow.

We can't use zfs_space() or zfs_freesp() here, since these functions
only work on regular files, not volumes. Fortunately we can use the
low-level function dmu_free_long_range() which does exactly what we
want.

Currently the discard operation is not added to the log. That's not
a big deal since losing discard requests cannot result in data
corruption. It would however result in disk space usage higher than
it should be. Thus adding log support to zvol_discard() is probably
a good idea for a future improvement.

Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
2012-02-09 16:19:38 -08:00
cmd Add support for DISCARD to ZVOLs. 2012-02-09 16:19:38 -08:00
config Add support for DISCARD to ZVOLs. 2012-02-09 16:19:38 -08:00
dracut Add support for DISCARD to ZVOLs. 2012-02-09 16:19:38 -08:00
etc Add support for DISCARD to ZVOLs. 2012-02-09 16:19:38 -08:00
include Add support for DISCARD to ZVOLs. 2012-02-09 16:19:38 -08:00
lib Add support for DISCARD to ZVOLs. 2012-02-09 16:19:38 -08:00
man Add support for DISCARD to ZVOLs. 2012-02-09 16:19:38 -08:00
module Add support for DISCARD to ZVOLs. 2012-02-09 16:19:38 -08:00
patches Add build system 2010-08-31 13:41:27 -07:00
scripts Add support for DISCARD to ZVOLs. 2012-02-09 16:19:38 -08:00
udev Add support for DISCARD to ZVOLs. 2012-02-09 16:19:38 -08:00
.gitignore Ignore unsigned module build products 2010-03-09 14:14:09 -08:00
AUTHORS Add "ashift" property to zpool create 2011-06-17 16:35:49 -07: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-rc6 tag 2011-10-06 14:10:45 -07:00
Makefile.am Add the release component to headers 2012-01-18 12:19:47 -08:00
Makefile.in Add support for DISCARD to ZVOLs. 2012-02-09 16:19:38 -08:00
OPENSOLARIS.LICENSE Add CDDL license file 2008-12-01 14:49:34 -08:00
PKGBUILD-zfs-modules.in Add make rule for building Arch Linux packages 2011-12-14 19:14:23 -08:00
PKGBUILD-zfs.in Add make rule for building Arch Linux packages 2011-12-14 19:14:23 -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 Make autogen.sh executable 2011-07-26 10:15:35 -07:00
configure Add support for DISCARD to ZVOLs. 2012-02-09 16:19:38 -08:00
configure.ac Add make rule for building Arch Linux packages 2011-12-14 19:14:23 -08:00
zfs-modules.spec.in Fix rpm dependencies 2012-01-18 12:19:52 -08:00
zfs-script-config.sh.in Unconditionally load core kernel modules 2010-11-11 11:38:25 -08:00
zfs.spec.in Fix rpm dependencies 2012-01-18 12:19:52 -08:00
zfs_config.h.in Add support for DISCARD to ZVOLs. 2012-02-09 16:19: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