OpenZFS on Linux and FreeBSD
Go to file
Brian Behlendorf ef1bdf363c Fix ZVOL BLKFLSBUF ioctl
The BLKFLSBUF ioctl is expected to do two things:

  - flush dirty pages to stable storage, and
  - invalidate clean pages

Unfortunately, the existing implementation of BLKFLSBUF in
zvol_ioctl() only flushes pages which are part of the current
TXG to disk.  There may be additional dirty pages in the
page cache which haven't yet been submitted to the DMU and
therefore aren't part of any TXG.

Furthermore because zvol_ioctl() returns 0 the generic
blkdev_flushbuf() does not invalidate the page cache.

Resolve the issue by moving bdev_flush() in to zvol_ioctl()
and explicitly waiting for a full TXG sync.  Then invalidate
the page cache.  The associated ARC buffers need not be
evicted since they cannot be bypassed using O_DIRECT.

Reviewed-by: Chunwei Chen <david.chen@osnexus.com>
Reviewed-by: George Melikov <mail@gmelikov.ru>
Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Closes #5871 
Closes #5879
2017-03-09 17:43:36 -08:00
.github Further work on Github usability (issue templates) 2017-01-03 15:01:48 -06:00
cmd Correct arc_summary and dbufstat python style 2017-03-09 10:21:59 -08:00
config [icp] fpu and asm cleanup for linux 2017-03-07 12:59:31 -08:00
contrib Fix initramfs hook for merged /usr/lib and /lib 2017-02-27 12:03:23 -08:00
etc OpenZFS 7793 - ztest fails assertion in dmu_tx_willuse_space 2017-03-07 09:51:59 -08:00
include Fix nfs snapdir automount 2017-03-08 09:26:33 -08:00
lib Fix nfs snapdir automount 2017-03-08 09:26:33 -08:00
man Fix nfs snapdir automount 2017-03-08 09:26:33 -08:00
module Fix ZVOL BLKFLSBUF ioctl 2017-03-09 17:43:36 -08:00
rpm Fix powerpc build 2017-03-06 09:17:24 -08:00
scripts Enable shellcheck to run for select scripts 2017-03-09 10:20:15 -08:00
tests Dump unique configurations and Uberblocks in zdb -lu 2017-03-06 16:01:45 -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-rc3 2017-01-20 10:18:28 -08:00
Makefile.am Suppress cppcheck nullPointer error in zfs_write 2017-03-09 17:40:21 -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 Move ziltest.sh to the ZTS framework 2017-02-08 17:28:22 -08:00
autogen.sh build: do not call boilerplate ourself 2013-04-02 10:55:20 -07:00
configure.ac OpenZFS 7793 - ztest fails assertion in dmu_tx_willuse_space 2017-03-07 09:51:59 -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 Add auto-online test for ZED/FMA as part of the ZTS 2017-02-28 16:25:39 -08: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.