mirror of
				https://git.proxmox.com/git/mirror_zfs
				synced 2025-10-31 19:05:26 +00:00 
			
		
		
		
	 de198f2d95
			
		
	
	
		de198f2d95
		
			
		
	
	
	
	
		
			
			When using lseek(2) to report data/holes memory mapped regions of the file were ignored. This could result in incorrect results. To handle this zfs_holey_common() was updated to asynchronously writeback any dirty mmap(2) regions prior to reporting holes. Additionally, while not strictly required, the dn_struct_rwlock is now held over the dirty check to prevent the dnode structure from changing. This ensures that a clean dnode can't be dirtied before the data/hole is located. The range lock is now also taken to ensure the call cannot race with zfs_write(). Furthermore, the code was refactored to provide a dnode_is_dirty() helper function which checks the dnode for any dirty records to determine its dirtiness. Reviewed-by: Matthew Ahrens <mahrens@delphix.com> Reviewed-by: Tony Hutter <hutter2@llnl.gov> Reviewed-by: Rich Ercolani <rincebrain@gmail.com> Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov> Issue #11900 Closes #12724
		
			
				
	
	
		
			225 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			INI
		
	
	
	
	
	
			
		
		
	
	
			225 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			INI
		
	
	
	
	
	
| #
 | |
| # Copyright (c) 2016, 2019 by Delphix. All rights reserved.
 | |
| # These variables are used by zfs-tests.sh to constrain which utilities
 | |
| # may be used by the suite. The suite will create a directory which is
 | |
| # the only element of $PATH and create symlinks from that dir to the
 | |
| # binaries listed below.
 | |
| #
 | |
| # Please keep the contents of each variable sorted for ease of reading
 | |
| # and maintenance.
 | |
| #
 | |
| export SYSTEM_FILES_COMMON='arp
 | |
|     awk
 | |
|     base64
 | |
|     basename
 | |
|     bc
 | |
|     bunzip2
 | |
|     bzcat
 | |
|     cat
 | |
|     chgrp
 | |
|     chmod
 | |
|     chown
 | |
|     cksum
 | |
|     cmp
 | |
|     cp
 | |
|     cpio
 | |
|     cut
 | |
|     date
 | |
|     dd
 | |
|     df
 | |
|     diff
 | |
|     dirname
 | |
|     dmesg
 | |
|     du
 | |
|     echo
 | |
|     egrep
 | |
|     env
 | |
|     expr
 | |
|     false
 | |
|     file
 | |
|     find
 | |
|     fio
 | |
|     getconf
 | |
|     getent
 | |
|     getfacl
 | |
|     grep
 | |
|     gunzip
 | |
|     gzip
 | |
|     head
 | |
|     hostname
 | |
|     id
 | |
|     iostat
 | |
|     kill
 | |
|     ksh
 | |
|     ln
 | |
|     logname
 | |
|     ls
 | |
|     mkdir
 | |
|     mknod
 | |
|     mktemp
 | |
|     mount
 | |
|     mv
 | |
|     net
 | |
|     od
 | |
|     openssl
 | |
|     pamtester
 | |
|     pax
 | |
|     pgrep
 | |
|     ping
 | |
|     pkill
 | |
|     printenv
 | |
|     printf
 | |
|     ps
 | |
|     pwd
 | |
|     python
 | |
|     python2
 | |
|     python3
 | |
|     quotaon
 | |
|     readlink
 | |
|     rm
 | |
|     rmdir
 | |
|     scp
 | |
|     script
 | |
|     sed
 | |
|     seq
 | |
|     setfacl
 | |
|     sh
 | |
|     sleep
 | |
|     sort
 | |
|     ssh
 | |
|     stat
 | |
|     strings
 | |
|     su
 | |
|     sudo
 | |
|     sum
 | |
|     swapoff
 | |
|     swapon
 | |
|     sync
 | |
|     tail
 | |
|     tar
 | |
|     tee
 | |
|     timeout
 | |
|     touch
 | |
|     tr
 | |
|     true
 | |
|     truncate
 | |
|     umask
 | |
|     umount
 | |
|     uname
 | |
|     uniq
 | |
|     uuidgen
 | |
|     vmstat
 | |
|     wait
 | |
|     wc
 | |
|     which
 | |
|     xargs'
 | |
| 
 | |
| export SYSTEM_FILES_FREEBSD='chflags
 | |
|     compress
 | |
|     diskinfo
 | |
|     dumpon
 | |
|     fsck
 | |
|     getextattr
 | |
|     gpart
 | |
|     jail
 | |
|     jexec
 | |
|     jls
 | |
|     lsextattr
 | |
|     md5
 | |
|     mdconfig
 | |
|     mkfifo
 | |
|     newfs
 | |
|     pw
 | |
|     rmextattr
 | |
|     setextattr
 | |
|     sha256
 | |
|     showmount
 | |
|     swapctl
 | |
|     sysctl
 | |
|     uncompress'
 | |
| 
 | |
| export SYSTEM_FILES_LINUX='attr
 | |
|     bash
 | |
|     blkid
 | |
|     blockdev
 | |
|     chattr
 | |
|     dmidecode
 | |
|     exportfs
 | |
|     fallocate
 | |
|     fdisk
 | |
|     free
 | |
|     getfattr
 | |
|     groupadd
 | |
|     groupdel
 | |
|     groupmod
 | |
|     hostid
 | |
|     losetup
 | |
|     lsattr
 | |
|     lsblk
 | |
|     lscpu
 | |
|     lsmod
 | |
|     lsscsi
 | |
|     md5sum
 | |
|     mkswap
 | |
|     modprobe
 | |
|     mpstat
 | |
|     nproc
 | |
|     parted
 | |
|     perf
 | |
|     setenforce
 | |
|     setfattr
 | |
|     sha256sum
 | |
|     udevadm
 | |
|     useradd
 | |
|     userdel
 | |
|     usermod'
 | |
| 
 | |
| export ZFS_FILES='zdb
 | |
|     zfs
 | |
|     zhack
 | |
|     zinject
 | |
|     zpool
 | |
|     ztest
 | |
|     raidz_test
 | |
|     arc_summary
 | |
|     arcstat
 | |
|     dbufstat
 | |
|     mount.zfs
 | |
|     zed
 | |
|     zgenhostid
 | |
|     zstream
 | |
|     zfs_ids_to_path
 | |
|     zpool_influxdb'
 | |
| 
 | |
| export ZFSTEST_FILES='badsend
 | |
|     btree_test
 | |
|     chg_usr_exec
 | |
|     devname2devid
 | |
|     dir_rd_update
 | |
|     draid
 | |
|     file_check
 | |
|     file_trunc
 | |
|     file_write
 | |
|     get_diff
 | |
|     largest_file
 | |
|     libzfs_input_check
 | |
|     mkbusy
 | |
|     mkfile
 | |
|     mkfiles
 | |
|     mktree
 | |
|     mmap_exec
 | |
|     mmap_libaio
 | |
|     mmap_seek
 | |
|     mmapwrite
 | |
|     nvlist_to_lua
 | |
|     randfree_file
 | |
|     randwritecomp
 | |
|     readmmap
 | |
|     rename_dir
 | |
|     rm_lnkcnt_zero_file
 | |
|     send_doall
 | |
|     threadsappend
 | |
|     user_ns_exec
 | |
|     xattrtest
 | |
|     stride_dd'
 |