zfs/module/zfs
Chunwei Chen 1ad7f89628 Enable lazytime semantic for atime
Linux 4.0 introduces lazytime. The idea is that when we update the atime, we
delay writing it to disk for as long as it is reasonably possible.

When lazytime is enabled, dirty_inode will be called with only I_DIRTY_TIME
flag whenever i_atime is updated. So under such condition, we will set
z_atime_dirty. We will only write it to disk if file is closed, inode is
evicted or setattr is called. Ideally, we should also write it whenever SA
is going to be updated, but it is left for future improvement.

There's one thing that we should take care of now that we allow i_atime to be
dirty. In original implementation, whenever SA is modified, zfs_inode_update
will be called to overwrite every thing in inode. This will cause dirty
i_atime to be discarded. We fix this by don't overwrite i_atime in
zfs_inode_update. We only overwrite i_atime when allocating new inode or doing
zfs_rezget with zfs_inode_update_new.

Signed-off-by: Chunwei Chen <david.chen@osnexus.com>
Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Issue #4482
2017-02-03 11:58:19 -08:00
..
Makefile.in Support parallel build trees (VPATH builds) 2015-07-17 13:42:51 -07:00
arc.c Handle block pointers with a corrupt logical size 2016-09-09 13:21:10 -07:00
blkptr.c Illumos 4757, 4913 2014-08-01 14:28:05 -07:00
bplist.c Change KM_PUSHPAGE -> KM_SLEEP 2015-01-16 14:41:26 -08:00
bpobj.c Illumos 5810 - zdb should print details of bpobj 2015-05-11 15:10:24 -07:00
bptree.c Illumos 5027 - zfs large block support 2015-05-11 12:23:16 -07:00
dbuf.c Fix PANIC: metaslab_free_dva(): bad DVA X:Y:Z 2016-09-05 16:07:09 -07:00
dbuf_stats.c Fix dbuf_stats_hash_table_data race 2016-09-09 13:21:09 -07:00
ddt.c Handle zap_lookup() failure in ddt_object_load() 2015-08-19 14:32:50 -07:00
ddt_zap.c Change KM_PUSHPAGE -> KM_SLEEP 2015-01-16 14:41:26 -08:00
dmu.c zvol processing should use struct bio 2015-09-04 15:30:24 -04:00
dmu_diff.c Illumos 5369 - arc flags should be an enum 2015-06-11 10:27:25 -07:00
dmu_object.c Illumos 6370 - ZFS send fails to transmit some holes 2016-03-15 10:01:48 -07:00
dmu_objset.c Add support for asynchronous zvol minor operations 2016-03-22 18:08:04 -07:00
dmu_send.c Use large stacks when available 2017-02-03 10:24:22 -08:00
dmu_traverse.c Add tunable to ignore hole_birth (enabled by default) 2016-09-09 13:20:54 -07:00
dmu_tx.c Illumos 5911 - ZFS "hangs" while deleting file 2015-07-06 09:31:42 -07:00
dmu_zfetch.c Change KM_PUSHPAGE -> KM_SLEEP 2015-01-16 14:41:26 -08:00
dnode.c Illumos 5911 - ZFS "hangs" while deleting file 2015-07-06 09:31:42 -07:00
dnode_sync.c Illumos 6267 - dn_bonus evicted too early 2015-10-13 15:32:16 -07:00
dsl_bookmark.c Illumos 4951 - ZFS administrative commands should use reserved space 2015-05-04 09:41:10 -07:00
dsl_dataset.c Don't count '@' for dataset namelen if not a snapshot 2017-02-03 10:25:22 -08:00
dsl_deadlist.c Illumos 5027 - zfs large block support 2015-05-11 12:23:16 -07:00
dsl_deleg.c Illumos 4951 - ZFS administrative commands should use reserved space 2015-05-04 09:41:10 -07:00
dsl_destroy.c Add support for asynchronous zvol minor operations 2016-03-22 18:08:04 -07:00
dsl_dir.c Add support for asynchronous zvol minor operations 2016-03-22 18:08:04 -07:00
dsl_pool.c Fix self-healing IO prior to dsl_pool_init() completion 2016-09-09 13:21:09 -07:00
dsl_prop.c Illumos 4951 - ZFS administrative commands should use reserved space 2015-05-04 09:41:10 -07:00
dsl_scan.c Illumos 5347 - idle pool may run itself out of space 2015-07-14 10:35:21 -07:00
dsl_synctask.c Illumos 4951 - ZFS administrative commands should use reserved space 2015-05-04 09:41:10 -07:00
dsl_userhold.c Illumos 4951 - ZFS administrative commands should use reserved space 2015-05-04 09:41:10 -07:00
fm.c zfsdev_getminor() should check for invalid file handles 2015-06-22 17:02:13 -07:00
gzip.c cstyle: Resolve C style issues 2013-12-18 16:46:35 -08:00
lz4.c Change KM_PUSHPAGE -> KM_SLEEP 2015-01-16 14:41:26 -08:00
lzjb.c Change KM_PUSHPAGE -> KM_SLEEP 2015-01-16 14:41:26 -08:00
metaslab.c Disable LBA weighting on files and SSDs 2015-09-01 15:22:07 -07:00
multilist.c Illumos 5497 - lock contention on arcs_mtx 2015-06-11 10:27:25 -07:00
range_tree.c Illumos 5163 - arc should reap range_seg_cache 2015-06-25 08:58:16 -07:00
refcount.c Change KM_PUSHPAGE -> KM_SLEEP 2015-01-16 14:41:26 -08:00
rrwlock.c Illumos 5008 - lock contention (rrw_exit) while running a read only load 2015-07-06 09:34:13 -07:00
sa.c Prevent SA length overflow 2016-01-29 09:41:14 -08:00
sha256.c Add linux sha2 support 2010-08-31 13:41:59 -07:00
spa.c Remove custom root pool import code 2017-02-03 10:24:59 -08:00
spa_boot.c Add linux kernel module support 2010-08-31 13:41:58 -07:00
spa_config.c Fix ztest truncated cache file 2016-09-05 16:07:08 -07:00
spa_errlog.c Illumos 4914 - zfs on-disk bookmark structure should be named *_phys_t 2014-08-06 14:48:41 -07:00
spa_history.c Illumos 5027 - zfs large block support 2015-05-11 12:23:16 -07:00
spa_misc.c Add spa_slop_shift module option 2015-09-02 09:30:18 -07:00
spa_stats.c Illumos 5369 - arc flags should be an enum 2015-06-11 10:27:25 -07:00
space_map.c Change KM_PUSHPAGE -> KM_SLEEP 2015-01-16 14:41:26 -08:00
space_reftree.c Change KM_PUSHPAGE -> KM_SLEEP 2015-01-16 14:41:26 -08:00
trace.c Illumos 5497 - lock contention on arcs_mtx 2015-06-11 10:27:25 -07:00
txg.c Align thread priority with Linux defaults 2015-07-28 13:36:47 -07:00
uberblock.c Illumos 5347 - idle pool may run itself out of space 2015-07-14 10:35:21 -07:00
unique.c Change KM_PUSHPAGE -> KM_SLEEP 2015-01-16 14:41:26 -08:00
vdev.c FreeBSD rS271776 - Persist vdev_resilver_txg changes 2016-09-09 13:21:09 -07:00
vdev_cache.c Change KM_PUSHPAGE -> KM_SLEEP 2015-01-16 14:41:26 -08:00
vdev_disk.c Explicit block device plugging when submitting multiple BIOs 2017-02-03 10:25:12 -08:00
vdev_file.c Disable LBA weighting on files and SSDs 2015-09-01 15:22:07 -07:00
vdev_label.c Change KM_PUSHPAGE -> KM_SLEEP 2015-01-16 14:41:26 -08:00
vdev_mirror.c Illumos #5244 - zio pipeline callers should explicitly invoke next stage 2015-04-30 15:07:47 -07:00
vdev_missing.c Illumos #5244 - zio pipeline callers should explicitly invoke next stage 2015-04-30 15:07:47 -07:00
vdev_queue.c Fix self-healing IO prior to dsl_pool_init() completion 2016-09-09 13:21:09 -07:00
vdev_raidz.c Illumos #5244 - zio pipeline callers should explicitly invoke next stage 2015-04-30 15:07:47 -07:00
vdev_root.c Illumos #3598 2013-10-31 14:58:04 -07:00
zap.c Fix empty xattr dir causing lockup 2015-12-30 16:13:30 -08:00
zap_leaf.c Illumos 5314 - Remove "dbuf phys" db->db_data pointer aliases in ZFS 2015-04-28 16:25:20 -07:00
zap_micro.c Add zap_prefetch() interface 2015-12-23 17:29:34 -08:00
zfeature.c Use cached feature info in spa_add_feature_stats() 2015-03-05 14:11:10 -08:00
zfeature_common.c Illumos 5027 - zfs large block support 2015-05-11 12:23:16 -07:00
zfs_acl.c Fix atime handling and relatime 2017-02-03 11:58:19 -08:00
zfs_byteswap.c Add linux kernel module support 2010-08-31 13:41:58 -07:00
zfs_ctldir.c Fix atime handling and relatime 2017-02-03 11:58:19 -08:00
zfs_debug.c Add dbgmsg kstat 2015-09-04 16:08:14 -07:00
zfs_dir.c Fix atime handling and relatime 2017-02-03 11:58:19 -08:00
zfs_fm.c Remove wrong ASSERT in annotate_ecksum 2016-05-01 18:29:51 -04:00
zfs_fuid.c Illumos #3522 2013-10-30 14:51:27 -07:00
zfs_ioctl.c Fix get_zfs_sb race with concurrent umount 2016-09-09 13:21:09 -07:00
zfs_log.c Illumos 5027 - zfs large block support 2015-05-11 12:23:16 -07:00
zfs_onexit.c zfsdev_getminor() should check for invalid file handles 2015-06-22 17:02:13 -07:00
zfs_replay.c Linux AIO Support 2014-09-05 15:11:43 -07:00
zfs_rlock.c Remove dummy znode from zvol_state 2016-09-05 16:07:08 -07:00
zfs_sa.c Fix atime handling and relatime 2017-02-03 11:58:19 -08:00
zfs_vfsops.c Fix zmo leak when zfs_sb_create fails 2017-02-03 10:25:33 -08:00
zfs_vnops.c Enable lazytime semantic for atime 2017-02-03 11:58:19 -08:00
zfs_znode.c Enable lazytime semantic for atime 2017-02-03 11:58:19 -08:00
zil.c Align thread priority with Linux defaults 2015-07-28 13:36:47 -07:00
zio.c Use large stacks when available 2017-02-03 10:24:22 -08:00
zio_checksum.c Illumos 4757, 4913 2014-08-01 14:28:05 -07:00
zio_compress.c Illumos 5661 - ZFS: "compression = on" should use lz4 if feature is enabled 2015-07-10 12:11:45 -07:00
zio_inject.c Illumos 5497 - lock contention on arcs_mtx 2015-06-11 10:27:25 -07:00
zle.c Update core ZFS code from build 121 to build 141. 2010-05-28 13:45:14 -07:00
zpl_ctldir.c Linux 4.9 compat: iops->rename() wants flags 2017-02-03 10:23:57 -08:00
zpl_export.c zfsctl: No need to sync ctldir inodes 2015-08-31 13:54:39 -07:00
zpl_file.c Fix atime handling and relatime 2017-02-03 11:58:19 -08:00
zpl_inode.c Enable lazytime semantic for atime 2017-02-03 11:58:19 -08:00
zpl_super.c Fix memleak in zpl_parse_options 2016-09-09 13:21:09 -07:00
zpl_xattr.c Batch free zpl_posix_acl_release 2017-02-03 10:24:45 -08:00
zrlock.c Illumos 5812 - assertion failed in zrl_tryenter(): zr_owner==NULL 2015-04-30 14:43:40 -07:00
zvol.c Fix lookup_bdev() on Ubuntu 2017-02-03 10:24:34 -08:00