mirror_zfs/module/os/linux/zfs
Richard Yao 1655ce5619 Linux 4.11 compat: statx support
Linux 4.11 added a new statx system call that allows us to expose crtime
as btime. We do this by caching crtime in the znode to match how atime,
ctime and mtime are cached in the inode.

statx also introduced a new way of reporting whether the immutable,
append and nodump bits have been set. It adds support for reporting
compression and encryption, but the semantics on other filesystems is
not just to report compression/encryption, but to allow it to be turned
on/off at the file level. We do not support that.

We could implement semantics where we refuse to allow user modification
of the bit, but we would need to do a dnode_hold() in zfs_znode_alloc()
to find out encryption/compression information. That would introduce
locking that will have a minor (although unmeasured) performance cost.
It also would be inferior to zdb, which reports far more detailed
information. We therefore omit reporting of encryption/compression
through statx in favor of recommending that users interested in such
information use zdb.

Reviewed-by: Tony Nguyen <tony.nguyen@delphix.com>
Reviewed-by: Allan Jude <allan@klarasystems.com>
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Reviewed-by: Alexander Motin <mav@FreeBSD.org>
Reviewed-by: Ryan Moeller <ryan@iXsystems.com>
Signed-off-by: Richard Yao <ryao@gentoo.org>
Closes #8507
2021-09-14 14:31:50 -07:00
..
abd_os.c Fix abd leak, kmem_free correct size of abd_t 2021-09-14 12:22:28 -07:00
arc_os.c Remove b_pabd/b_rabd allocation from arc_hdr_alloc() 2021-09-14 14:31:50 -07:00
Makefile.in
mmp_os.c
policy.c Linux 5.12 compat: idmapped mounts 2021-03-19 21:00:59 -07:00
qat_compress.c Modify checksum obtain method of QAT 2021-09-14 14:29:46 -07:00
qat_crypt.c
qat.c
spa_misc_os.c
trace.c
vdev_disk.c Linux 5.12 update: bio_max_segs() replaces BIO_MAX_PAGES 2021-03-19 22:33:42 -07:00
vdev_file.c
zfs_acl.c
zfs_ctldir.c Linux: always check or verify return of igrab() 2021-03-16 16:33:34 -07:00
zfs_debug.c Annotated dprintf as printf-like 2021-06-24 13:12:36 -07:00
zfs_dir.c Clean up use of zfs_log_create in zfs_dir 2021-05-10 12:16:32 -07:00
zfs_file_os.c file reference counts can get corrupted 2021-09-14 12:37:38 -07:00
zfs_ioctl_os.c libzfs: On FreeBSD, use MNT_NOWAIT with getfsstat 2021-06-09 13:05:34 -07:00
zfs_racct.c
zfs_sysfs.c
zfs_uio.c Removing old code for k(un)map_atomic 2021-03-19 22:38:44 -07:00
zfs_vfsops.c Linux: always check or verify return of igrab() 2021-03-16 16:33:34 -07:00
zfs_vnops_os.c A few fixes of callback typecasting (for the upcoming ClangCFI) 2021-09-14 12:39:48 -07:00
zfs_znode.c Linux 4.11 compat: statx support 2021-09-14 14:31:50 -07:00
zio_crypt.c gcc 11 cleanup 2021-06-24 13:13:40 -07:00
zpl_ctldir.c Linux 5.12 compat: idmapped mounts 2021-03-19 21:00:59 -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 5.14 compat: explicity assign set_page_dirty 2021-09-14 12:41:10 -07:00
zpl_inode.c Linux 4.11 compat: statx support 2021-09-14 14:31:50 -07:00
zpl_super.c
zpl_xattr.c Bend zpl_set_acl to permit the new userns* parameter 2021-05-27 22:31:57 -07:00
zvol_os.c Enable /proc/diskstats for zvols 2021-09-14 14:30:13 -07:00