mirror_zfs/module/os/linux/zfs
Chunwei Chen bfb2928490 Fix zfs_get_data access to files with wrong generation
If TX_WRITE is create on a file, and the file is later deleted and a new
directory is created on the same object id, it is possible that when
zil_commit happens, zfs_get_data will be called on the new directory.
This may result in panic as it tries to do range lock.

This patch fixes this issue by record the generation number during
zfs_log_write, so zfs_get_data can check if the object is valid.

Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: Chunwei Chen <david.chen@nutanix.com>
Closes #10593
Closes #11682
2021-06-23 13:22:15 -07:00
..
abd_os.c Include scatter_chunk_waste in arc_size 2020-08-17 20:04:04 -07:00
arc_os.c Linux 5.9 compat: NR_SLAB_RECLAIMABLE 2020-08-30 14:18:50 -07:00
Makefile.in Restore FreeBSD resource usage accounting 2021-03-05 12:50:32 -08:00
mmp_os.c Add zfs_multihost_interval tunable handler for FreeBSD 2020-06-23 13:32:42 -07:00
policy.c Linux 5.12 compat: idmapped mounts 2021-06-23 13:22:15 -07:00
qat_compress.c Fix QAT allocation failure return value 2020-01-06 11:17:53 -08: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 5.12 update: bio_max_segs() replaces BIO_MAX_PAGES 2021-06-23 13:22:15 -07:00
vdev_file.c vdev_ashift should only be set once 2020-09-18 12:40:20 -07:00
zfs_acl.c Intentionally allow ZFS_READONLY in zfs_write 2021-03-08 09:07:29 -08:00
zfs_ctldir.c G/C struct znode -> z_moved 2020-11-11 11:40:15 -08:00
zfs_debug.c FreeBSD: Add support for procfs_list 2020-10-01 12:18:56 -07:00
zfs_dir.c Throw const on some strings 2020-10-16 12:55:56 -07:00
zfs_file_os.c Re-share zfsdev_getminor and zfs_onexit_fd_hold 2020-02-28 14:50:32 -08:00
zfs_ioctl_os.c Avoid taking global lock to destroy zfsdev state 2021-06-23 13:22:14 -07:00
zfs_racct.c Restore FreeBSD resource usage accounting 2021-03-05 12:50:32 -08:00
zfs_sysfs.c Persistent L2ARC 2020-04-10 10:33:35 -07:00
zfs_uio.c Linux 5.10 compat: restore custom uio_prefaultpages() 2021-01-22 09:58:49 -08:00
zfs_vfsops.c Macroify teardown lock handling 2021-06-23 13:22:14 -07:00
zfs_vnops_os.c Fix zfs_get_data access to files with wrong generation 2021-06-23 13:22:15 -07:00
zfs_znode.c Share zfs_fsync, zfs_read, zfs_write, et al between Linux and FreeBSD 2020-12-23 14:34:59 -08:00
zio_crypt.c Initialize ZIL buffers 2021-03-08 09:07:21 -08:00
zpl_ctldir.c Linux 5.12 compat: idmapped mounts 2021-06-23 13:22:15 -07:00
zpl_export.c Eliminate Linux specific inode usage from common code 2019-12-11 11:53:57 -08:00
zpl_file.c Remove iov_iter_advance() for iter_write 2021-06-23 13:22:15 -07:00
zpl_inode.c Update tmpfile() existence detection 2021-06-23 13:22:15 -07:00
zpl_super.c Linux: Fix ZFS_ENTER/ZFS_EXIT/ZFS_VERFY_ZP usage 2020-11-14 10:51:27 -08:00
zpl_xattr.c Bend zpl_set_acl to permit the new userns* parameter 2021-06-23 13:22:15 -07:00
zvol_os.c linux 5.13 compat: bdevops->revalidate_disk() removed (#12122) 2021-06-23 13:22:15 -07:00