FreeBSD src
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
autogen.sh Make autogen.sh executable 2011-07-26 10:15:35 -07:00
ChangeLog Add build system 2010-08-31 13:41:27 -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
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
DISCLAIMER Update COPYRIGHT and DISCLAIMER. 2010-05-18 10:32:23 -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
META Prep zfs-0.6.0-rc6 tag 2011-10-06 14:10:45 -07: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_config.h.in Add support for DISCARD to ZVOLs. 2012-02-09 16:19:38 -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.RELEASE Update to onnv_147 2010-08-26 14:24:34 -07:00
zfs.spec.in Fix rpm dependencies 2012-01-18 12:19:52 -08: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