mirror_zfs/module/os/linux/zfs
Coleman Kane 73ab3bd088 Linux 6.6 compat: use inode_get/set_ctime*(...)
In Linux commit 13bc24457850583a2e7203ded05b7209ab4bc5ef, direct access
to the i_ctime member of struct inode was removed. The new approach is
to use accessor methods that exclusively handle passing the timestamp
around by value. This change adds new tests for each of these functions
and introduces zpl_* equivalents in include/os/linux/zfs/sys/zpl.h. In
where the inode_get/set_ctime*() functions exist, these zpl_* calls will
be mapped to the new functions. On older kernels, these macros just wrap
direct-access calls. The code that operated on an address of ip->i_ctime
to call ZFS_TIME_DECODE() now will take a local copy using
zpl_inode_get_ctime(), and then pass the address of the local copy when
performing the ZFS_TIME_DECODE() call, in all cases, rather than
directly accessing the member.

Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: Coleman Kane <ckane@colemankane.org>
Closes #15263
Closes #15257
(cherry picked from commit fe9d409e90)
2024-02-08 13:29:28 -08:00
..
abd_os.c Avoid small buffer copying on write 2022-07-26 10:10:37 -07:00
arc_os.c Linux 6.4 compat: reclaimed_slab renamed to reclaimed 2023-06-05 10:59:02 -07:00
Makefile.in Restore FreeBSD resource usage accounting 2021-02-19 22:34:33 -08:00
mmp_os.c Add zfs_multihost_interval tunable handler for FreeBSD 2020-06-23 13:32:42 -07:00
policy.c Linux 6.3 compat: idmapped mount API changes 2023-06-05 10:59:02 -07:00
qat_compress.c QAT: Fix uninitialized seed in QAT compression 2023-03-17 11:09:07 -07:00
qat_crypt.c QAT related bug fixes 2019-09-12 13:33:44 -07:00
qat.c QAT related bug fixes 2019-09-12 13:33:44 -07:00
spa_misc_os.c Make spa_history_zone platform-dependent in kernel 2020-03-02 09:43:30 -08:00
trace.c Enable use of DTRACE_PROBE* macros in "spl" module 2019-11-01 13:13:43 -07:00
vdev_disk.c Linux 6.5 compat: blkdev changes 2023-09-11 16:20:26 -07:00
vdev_file.c module: zfs: fix unused, remove argsused 2022-02-16 17:58:56 -08:00
zfs_acl.c Use fallthrough macro 2021-11-02 09:50:30 -07:00
zfs_ctldir.c Linux 6.6 compat: use inode_get/set_ctime*(...) 2024-02-08 13:29:28 -08:00
zfs_debug.c Cleanup: Replace oldstyle struct hack with C99 flexible array members 2023-09-20 10:10:41 -07:00
zfs_dir.c skip permission checks for extended attributes 2023-01-05 11:10:28 -08:00
zfs_file_os.c file reference counts can get corrupted 2021-09-14 12:37:38 -07:00
zfs_ioctl_os.c Linux 6.3 compat: idmapped mount API changes 2023-06-05 10:59:02 -07:00
zfs_racct.c module: zfs: fix unused, remove argsused 2022-02-16 17:58:56 -08:00
zfs_sysfs.c Linux 5.18 compat: kobj_type.default_attrs replaced with default_groups 2022-04-25 10:00:09 -07:00
zfs_uio.c autoconf: Fail when __copy_from_user_inatomic is a non-GPL symbol 2022-05-20 10:33:24 -07:00
zfs_vfsops.c Use vmem_zalloc to silence allocation warning 2023-05-26 10:10:09 -07:00
zfs_vnops_os.c Linux 6.6 compat: use inode_get/set_ctime*(...) 2024-02-08 13:29:28 -08:00
zfs_znode.c Linux 6.6 compat: use inode_get/set_ctime*(...) 2024-02-08 13:29:28 -08:00
zio_crypt.c Linux: Fix uninitialized variable usage in zio_do_crypt_data() 2022-09-27 15:43:26 -07:00
zpl_ctldir.c Linux 6.5 compat: blkdev changes 2023-09-11 16:20:26 -07:00
zpl_export.c Return required size when encode_fh size too small 2021-05-10 12:13:45 -07:00
zpl_file.c Linux 6.5 compat: Use copy_splice_read instead of filemap_splice_read 2023-09-11 16:34:12 -07:00
zpl_inode.c Linux 6.6 compat: use inode_get/set_ctime*(...) 2024-02-08 13:29:28 -08:00
zpl_super.c Linux: Fix ZFS_ENTER/ZFS_EXIT/ZFS_VERFY_ZP usage 2020-11-14 10:19:00 -08:00
zpl_xattr.c Linux 6.6 compat: use inode_get/set_ctime*(...) 2024-02-08 13:29:28 -08:00
zvol_os.c Linux 6.5 compat: blkdev changes 2023-09-11 16:20:26 -07:00