OpenZFS on Linux and FreeBSD
Go to file
Brian Behlendorf 8780c53961 Update SAs when an inode is dirtied
Revert the portion of commit d3aa3ea which always resulted in the
SAs being update when an mmap()'ed file was closed.  That change
accidentally resulted in unexpected ctime updates which upset tools
like git.  That was always a horrible hack and I'm happy it will
never make it in to a tagged release.

The right fix is something I initially resisted doing because I
was worried about the additional overhead.  However, in hindsight
the overhead isn't as bad as I feared.

This patch implemented the sops->dirty_inode() callback which is
unsurprisingly called when an inode is dirtied.  We leverage this
callback to keep the znode SAs strictly in sync with the inode.

However, for now we're going to go slowly to avoid introducing
any new unexpected issues by only updating the atime, mtime, and
ctime.  This will cover the callpath of most concern to us.

  ->filemap_page_mkwrite->file_update_time->update_time->
      mark_inode_dirty_sync->__mark_inode_dirty->dirty_inode

Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Closes #764
Closes #1140
2012-12-14 12:18:54 -08:00
cmd vdev_id support for device link aliases 2012-12-03 14:04:47 -08:00
config Update SAs when an inode is dirtied 2012-12-14 12:18:54 -08:00
dracut Remove autotools products 2012-08-27 11:47:44 -07:00
etc vdev_id support for device link aliases 2012-12-03 14:04:47 -08:00
include Update SAs when an inode is dirtied 2012-12-14 12:18:54 -08:00
lib Fix 'zpool create' segfault due to bad syntax 2012-12-04 11:15:25 -08:00
man vdev_id support for device link aliases 2012-12-03 14:04:47 -08:00
module Update SAs when an inode is dirtied 2012-12-14 12:18:54 -08:00
patches Adding grub2 mkconfig support patch 2012-07-30 16:17:23 -07:00
scripts Implemented sharing datasets via SMB using libshare 2012-12-03 09:42:15 -08:00
udev Update 69-vdev.rules .gitignore 2012-12-14 12:16:42 -08:00
.gitignore Remove autotools products 2012-09-11 10:15:13 -07: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 zfs-0.6.0-rc12 2012-11-13 14:35:44 -08:00
Makefile.am Add copy-builtin to EXTRA_DIST 2012-08-23 09:50:00 -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 Add script for builtin module building. 2012-07-26 13:45:09 -07:00
ZFS.RELEASE Update to onnv_147 2010-08-26 14:24:34 -07:00
autogen.sh Remove autotools products 2012-08-27 11:47:44 -07:00
configure.ac Add zstreamdump(8) command to examine ZFS send streams. 2012-09-02 14:54:27 -07:00
copy-builtin Consistent menuconfig name 2012-08-26 13:49:37 -07:00
dkms.conf.in Support building a zfs-modules-dkms sub package 2012-08-08 15:21:01 -07:00
dkms.postinst Support building a zfs-modules-dkms sub package 2012-08-08 15:21:01 -07:00
zfs-modules.spec.in Cleanly remove zfs-modules-devel headers 2012-08-13 16:35:26 -07:00
zfs-script-config.sh.in Unconditionally load core kernel modules 2010-11-11 11:38:25 -08:00
zfs.release.in Move zfs.release generation to configure step 2012-07-12 12:22:51 -07:00
zfs.spec.in Fix man page installation path 2012-08-10 15:32:30 -07: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

To copy the kernel code inside your kernel source tree for builtin compilation:

$ ./configure --enable-linux-builtin --with-linux=/usr/src/linux-...
$ ./copy-builtin /usr/src/linux-...

Full documentation for building, configuring, and using ZFS can be found at: http://zfsonlinux.org