Go to file
Chunwei Chen 061460dfe2 Fix get_zfs_sb race with concurrent umount
Certain ioctl operations will call get_zfs_sb, which will holds an active
count on sb without checking whether it's active or not. This will result
in use-after-free. We fix this by using atomic_inc_not_zero to make sure
we got an active sb.

P1                                          P2
---                                         ---
deactivate_locked_super(): s_active = 0
                                            zfs_sb_hold()
                                            ->get_zfs_sb(): s_active = 1
->zpl_kill_sb()
-->zpl_put_super()
--->zfs_umount()
---->zfs_sb_free(zsb)
                                            zfs_sb_rele(zsb)

Signed-off-by: Chunwei Chen <david.chen@osnexus.com>
Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
2016-07-12 13:34:14 -07:00
cmd OpenZFS 6314 - buffer overflow in dsl_dataset_name 2016-06-28 13:47:03 -07:00
config OpenZFS 6314 - buffer overflow in dsl_dataset_name 2016-06-28 13:47:03 -07:00
contrib Fix the test to use the variable 2016-05-13 20:44:03 -07:00
etc Systemd configuration fixes 2016-05-27 11:54:29 -07:00
include OpenZFS 6314 - buffer overflow in dsl_dataset_name 2016-06-28 13:47:03 -07:00
lib OpenZFS 6876 - Stack corruption after importing a pool with a too-long name 2016-06-28 13:47:04 -07:00
man OpenZFS 6393 - zfs receive a full send as a clone 2016-06-28 13:47:03 -07:00
module Fix get_zfs_sb race with concurrent umount 2016-07-12 13:34:14 -07:00
rpm Add missing RPM BuildRequires 2016-05-23 10:33:42 -07:00
scripts Add zfs allow and zfs unallow support 2016-06-07 09:16:52 -07:00
tests OpenZFS 6876 - Stack corruption after importing a pool with a too-long name 2016-06-28 13:47:04 -07:00
udev Add zfs allow and zfs unallow support 2016-06-07 09:16:52 -07:00
.gitignore Ignore *.{deb,rpm,tar.gz} files in the top directory. 2013-04-24 16:18:59 -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
autogen.sh build: do not call boilerplate ourself 2013-04-02 10:55:20 -07:00
configure.ac Implement large_dnode pool feature 2016-06-24 13:13:21 -07:00
copy-builtin Fix --enable-linux-builtin 2015-12-02 07:54:32 -08: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
Makefile.am Add the ZFS Test Suite 2016-03-16 13:46:16 -07:00
META Tag zfs-0.6.5 2015-09-11 11:16:38 -07:00
OPENSOLARIS.LICENSE Add CDDL license file 2008-12-01 14:49:34 -08:00
README.markdown Fix minor typos and update marketing copy. 2013-03-21 12:51:06 -07:00
TEST Add the ZFS Test Suite 2016-03-16 13:46:16 -07:00
zfs-script-config.sh.in OpenZFS 2605, 6980, 6902 2016-06-28 13:47:02 -07:00
zfs.release.in Move zfs.release generation to configure step 2012-07-12 12:22:51 -07:00

Native ZFS for Linux!

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.

Full documentation for installing ZoL on your favorite Linux distribution can be found at: http://zfsonlinux.org