zfs/config
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
..
.gitignore Remove autotools products 2012-08-27 11:47:44 -07:00
Rules.am Check for -Wno-unused-but-set-variable gcc support 2011-06-14 14:43:22 -07:00
always-no-unused-but-set-variable.m4 In autoconf v2.68, AC_LANG_PROGRAM must be quoted 2011-11-28 11:16:33 -08:00
arch.am Don't build packages that haven't been selected. 2012-07-26 13:39:37 -07:00
config.awk Add build system 2010-08-31 13:41:27 -07:00
deb.am Don't build packages that haven't been selected. 2012-07-26 13:39:37 -07:00
kernel-automount.m4 Fix snapshot automounting with GrSecurity constify plugin. 2012-08-24 08:56:38 -07:00
kernel-bdev-block-device-operations.m4 Fix configure tests to play nice with GCC 4.6 2011-11-29 16:14:25 -08:00
kernel-bdev-logical-size.m4 Fix configure tests to play nice with GCC 4.6 2011-11-29 16:14:25 -08:00
kernel-bdev-physical-size.m4 Improve AF hard disk detection 2012-11-15 11:06:14 -08:00
kernel-bdi-setup-and-register.m4 When checking for symbol exports, try compiling. 2012-07-26 13:42:57 -07:00
kernel-bdi.m4 Add backing_device_info per-filesystem 2011-08-04 13:37:38 -07:00
kernel-bio-empty-barrier.m4 Add build system 2010-08-31 13:41:27 -07:00
kernel-bio-end-io-t-args.m4 Fix gcc configure warnings 2011-04-19 10:10:47 -07:00
kernel-bio-failfast.m4 Fix gcc configure warnings 2011-04-19 10:10:47 -07:00
kernel-bio-rw-syncio.m4 Fix gcc configure warnings 2011-04-19 10:10:47 -07:00
kernel-blk-end-request.m4 Fix configure tests to play nice with GCC 4.6 2011-11-29 16:14:25 -08:00
kernel-blk-fetch-request.m4 Fix configure tests to play nice with GCC 4.6 2011-11-29 16:14:25 -08:00
kernel-blk-queue-discard.m4 Add support for DISCARD to ZVOLs. 2012-02-09 16:19:38 -08:00
kernel-blk-queue-flush.m4 Fix synchronicity for ZVOLs. 2012-02-07 16:23:06 -08:00
kernel-blk-queue-io-opt.m4 Improve ZVOL queue behavior. 2012-02-07 16:23:06 -08:00
kernel-blk-queue-max-hw-sectors.m4 Improve ZVOL queue behavior. 2012-02-07 16:23:06 -08:00
kernel-blk-queue-max-segments.m4 Improve ZVOL queue behavior. 2012-02-07 16:23:06 -08:00
kernel-blk-queue-nonrot.m4 Improve ZVOL queue behavior. 2012-02-07 16:23:06 -08:00
kernel-blk-queue-physical-block-size.m4 Improve ZVOL queue behavior. 2012-02-07 16:23:06 -08:00
kernel-blk-requeue-request.m4 Fix configure tests to play nice with GCC 4.6 2011-11-29 16:14:25 -08:00
kernel-blk-rq-bytes.m4 Fix configure tests to play nice with GCC 4.6 2011-11-29 16:14:25 -08:00
kernel-blk-rq-pos.m4 Fix configure tests to play nice with GCC 4.6 2011-11-29 16:14:25 -08:00
kernel-blk-rq-sectors.m4 Fix configure tests to play nice with GCC 4.6 2011-11-29 16:14:25 -08:00
kernel-blkdev-get-by-path.m4 When checking for symbol exports, try compiling. 2012-07-26 13:42:57 -07:00
kernel-blkdev-get.m4 Move partition scanning from userspace to module. 2012-07-17 09:17:31 -07:00
kernel-check-disk-size-change.m4 When checking for symbol exports, try compiling. 2012-07-26 13:42:57 -07:00
kernel-clear-inode.m4 When checking for symbol exports, try compiling. 2012-07-26 13:42:57 -07:00
kernel-commit-metadata.m4 Implement .commit_metadata hook for NFS export 2012-10-03 10:49:45 -07:00
kernel-create-nameidata.m4 Linux 3.6 compat, iops->create() 2012-10-14 14:42:25 -07:00
kernel-d-make-root.m4 When checking for symbol exports, try compiling. 2012-07-26 13:42:57 -07:00
kernel-d-obtain-alias.m4 When checking for symbol exports, try compiling. 2012-07-26 13:42:57 -07:00
kernel-dirty-inode.m4 Update SAs when an inode is dirtied 2012-12-14 12:18:54 -08:00
kernel-discard-granularity.m4 Set zvol discard_granularity to the volblocksize. 2012-08-07 14:55:31 -07:00
kernel-elevator-change.m4 Modify vdev_elevator_switch() to use elevator_change() 2012-10-03 13:31:44 -07:00
kernel-encode-fh-inode.m4 Linux 3.5 compat, eops->encode_fh() takes inodes 2012-07-23 12:29:23 -07:00
kernel-evict-inode.m4 Fix build failures on PaX/GRSecurity patched kernels 2012-07-17 09:22:43 -07:00
kernel-fallocate.m4 Fix build failures on PaX/GRSecurity patched kernels 2012-07-17 09:22:43 -07:00
kernel-fmode-t.m4 Fix gcc configure warnings 2011-04-19 10:10:47 -07:00
kernel-fsync.m4 Fix build failures on PaX/GRSecurity patched kernels 2012-07-17 09:22:43 -07:00
kernel-get-disk-ro.m4 Fix configure tests to play nice with GCC 4.6 2011-11-29 16:14:25 -08:00
kernel-get-gendisk.m4 When checking for symbol exports, try compiling. 2012-07-26 13:42:57 -07:00
kernel-insert-inode-locked.m4 When checking for symbol exports, try compiling. 2012-07-26 13:42:57 -07:00
kernel-invalidate-bdev-args.m4 Fix gcc configure warnings 2011-04-19 10:10:47 -07:00
kernel-kobj-name-len.m4 Fix gcc configure warnings 2011-04-19 10:10:47 -07:00
kernel-lookup-nameidata.m4 Linux 3.6 compat, iops->lookup() 2012-10-14 13:06:54 -07:00
kernel-mkdir-umode-t.m4 Linux 3.6 compat, iops->mkdir() 2012-10-14 15:29:26 -07:00
kernel-mount-nodev.m4 When checking for symbol exports, try compiling. 2012-07-26 13:42:57 -07:00
kernel-open-bdev-exclusive.m4 When checking for symbol exports, try compiling. 2012-07-26 13:42:57 -07:00
kernel-rq-for-each_segment.m4 Fix configure tests to play nice with GCC 4.6 2011-11-29 16:14:25 -08:00
kernel-rq-is_sync.m4 Fix configure tests to play nice with GCC 4.6 2011-11-29 16:14:25 -08:00
kernel-security-inode-init.m4 Linux 3.2 compat, security_inode_init_security() 2012-01-12 15:06:39 -08:00
kernel-set-nlink.m4 Linux 3.2 compat: set_nlink() 2011-12-16 20:02:52 -08:00
kernel-sget-args.m4 Linux 3.6 compat, sget() 2012-10-14 13:06:48 -07:00
kernel-show-options.m4 Fix NULL pointer dereference on PaX/GRSecurity patched Linux 3.3 and later kernels 2012-07-20 12:31:45 -07:00
kernel-shrink.m4 Linux 3.1 compat, super_block->s_shrink 2012-01-11 11:46:02 -08:00
kernel-truncate-range.m4 Linux 3.5 compat, iops->truncate_range() removed 2012-07-23 12:29:32 -07:00
kernel-truncate-setsize.m4 When checking for symbol exports, try compiling. 2012-07-26 13:42:57 -07:00
kernel-xattr-handler.m4 Fix gcc configure warnings 2011-04-19 10:10:47 -07:00
kernel.m4 Update SAs when an inode is dirtied 2012-12-14 12:18:54 -08:00
rpm.am Support building a zfs-modules-dkms sub package 2012-08-08 15:21:01 -07:00
suppressed-warnings.txt Suppress packaging warning 2011-11-08 11:32:04 -08:00
tgz.am Don't build packages that haven't been selected. 2012-07-26 13:39:37 -07:00
user-arch.m4 Add build system 2010-08-31 13:41:27 -07:00
user-frame-larger-than.m4 In autoconf v2.68, AC_LANG_PROGRAM must be quoted 2011-11-28 11:16:33 -08:00
user-ioctl.m4 Add build system 2010-08-31 13:41:27 -07:00
user-libblkid.m4 In autoconf v2.68, AC_LANG_PROGRAM must be quoted 2011-11-28 11:16:33 -08:00
user-libuuid.m4 Add build system 2010-08-31 13:41:27 -07:00
user-nptl_guard_within_stack.m4 In autoconf v2.68, AC_LANG_PROGRAM must be quoted 2011-11-28 11:16:33 -08:00
user-selinux.m4 Autoconf selinux support 2011-01-28 12:45:19 -08:00
user-udev.m4 Move udev rules from /etc/udev to /lib/udev 2011-08-08 16:21:10 -07:00
user-zlib.m4 Add build system 2010-08-31 13:41:27 -07:00
user.m4 Move udev rules from /etc/udev to /lib/udev 2011-08-08 16:21:10 -07:00
zfs-build.m4 Make configure builtin-aware. 2012-07-26 13:40:18 -07:00
zfs-meta.m4 Add build system 2010-08-31 13:41:27 -07:00