OpenZFS on Linux and FreeBSD
Go to file
Chunwei Chen 040dab9939 Suspend/resume zvol for recv and rollback
When doing recv and rollback, dsl_dataset_clone_swap_sync_impl will be
called to swap out the ds_objset and do dmu_objset_evict on the old one.
However, currently zv->zv_objset will not be swapped out accordingly, so
if anyone currently holds a fd on the zvol, we risk hitting a use-after-free.

We fix this by introducing the suspend and resume mechanism of zsb to
zv.  Before recv or rollback, we use zvol_suspend to block all access to
zv_objset and shut it down. After the recv or rollback, we use zvol_resume
to swap in zv_objset with the new ds_objset and unblock the access.

Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: Chunwei Chen <david.chen@osnexus.com>
Closes #4866 
Closes #5609
2017-01-19 13:56:36 -08:00
.github Further work on Github usability (issue templates) 2017-01-03 15:01:48 -06:00
cmd OpenZFS 6550 - cmd/zfs: cleanup gcc warnings 2017-01-17 14:45:02 -08:00
config Fix spelling 2017-01-03 11:31:18 -06:00
contrib Fix spelling 2017-01-03 11:31:18 -06:00
etc Fix zfs-share systemd unit file 2017-01-13 13:24:17 -08:00
include Suspend/resume zvol for recv and rollback 2017-01-19 13:56:36 -08:00
lib OpenZFS 6328 - Fix cstyle errors in zfs codebase 2017-01-12 09:42:11 -08:00
man OpenZFS 7257 - zfs manpage user property length needs to be updated 2017-01-17 15:30:01 -08:00
module Suspend/resume zvol for recv and rollback 2017-01-19 13:56:36 -08:00
rpm Add -c to zpool iostat & status to run command 2016-11-29 14:45:38 -07:00
scripts Don't hardcode perl path but use env instead 2017-01-13 15:57:34 -08:00
tests Disable racy test cases 2017-01-19 10:24:27 -08:00
udev Fix spelling 2017-01-03 11:31:18 -06:00
.gitignore Update .gitignore 2016-10-19 14:29:33 -07:00
.gitmodules Add zimport.sh compatibility test script 2014-02-21 12:10:31 -08:00
AUTHORS Add a missing > to AUTHORS 2014-09-02 14:18:53 -07:00
COPYRIGHT Update ZED copyright boilerplate 2015-05-11 15:07:00 -07:00
DISCLAIMER Fix minor typos and update marketing copy. 2013-03-21 12:51:06 -07:00
META Tag 0.7.0-rc2 2016-10-26 10:36:33 -07:00
Makefile.am Use cstyle -cpP in `make cstyle` check 2016-12-12 10:46:26 -08:00
OPENSOLARIS.LICENSE Add CDDL license file 2008-12-01 14:49:34 -08:00
README.markdown Add CONTRIBUTING information and templates 2016-12-09 12:48:12 -07:00
TEST Skip xfstests on Ubuntu 16.04 and CentOS 7 2016-12-14 09:36:14 -08:00
autogen.sh build: do not call boilerplate ourself 2013-04-02 10:55:20 -07:00
configure.ac Add test for chattr 2016-12-16 16:07:41 -08:00
copy-builtin Illumos Crypto Port module added to enable native encryption in zfs 2016-07-20 10:43:30 -07:00
zfs-script-config.sh.in Introduce tests for python scripts 2016-10-06 13:11:57 -07:00
zfs.release.in Move zfs.release generation to configure step 2012-07-12 12:22:51 -07:00

README.markdown

ZFS is an advanced file system and volume manager which was originally developed for Solaris and is now maintained by the Illumos community.

ZFS on Linux, which is also known as ZoL, is currently feature complete. It includes fully functional and stable SPA, DMU, ZVOL, and ZPL layers. And it's native!

Official Resources

Installation

Full documentation for installing ZoL on your favorite Linux distribution can be found at our site.

Contribute & Develop

We have a separate document with contribution guidelines.