mirror of
https://git.proxmox.com/git/mirror_zfs.git
synced 2024-12-27 19:39:35 +03:00
dbf6108b4d
Implement support for Linux's RENAME_* flags (for renameat2). Aside from being quite useful for userspace (providing race-free ways to exchange paths and implement mv --no-clobber), they are used by overlayfs and are thus required in order to use overlayfs-on-ZFS. In order for us to represent the new renameat2(2) flags in the ZIL, we create two new transaction types for the two flags which need transactional-level support (RENAME_EXCHANGE and RENAME_WHITEOUT). RENAME_NOREPLACE does not need any ZIL support because we know that if the operation succeeded before creating the ZIL entry, there was no file to be clobbered and thus it can be treated as a regular TX_RENAME. Reviewed-by: Ryan Moeller <ryan@iXsystems.com> Reviewed-by: Alexander Motin <mav@FreeBSD.org> Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov> Reviewed-by: Pavel Snajdr <snajpa@snajpa.net> Signed-off-by: Aleksa Sarai <cyphar@cyphar.com> Closes #12209 Closes #14070
205 lines
6.8 KiB
Plaintext
205 lines
6.8 KiB
Plaintext
#
|
|
# This file and its contents are supplied under the terms of the
|
|
# Common Development and Distribution License ("CDDL"), version 1.0.
|
|
# You may only use this file in accordance with the terms of version
|
|
# 1.0 of the CDDL.
|
|
#
|
|
# A full copy of the text of the CDDL should have accompanied this
|
|
# source. A copy of the CDDL is also available via the Internet at
|
|
# http://www.illumos.org/license/CDDL.
|
|
#
|
|
|
|
[DEFAULT]
|
|
pre = setup
|
|
quiet = False
|
|
pre_user = root
|
|
user = root
|
|
timeout = 600
|
|
post_user = root
|
|
post = cleanup
|
|
failsafe_user = root
|
|
failsafe = callbacks/zfs_failsafe
|
|
outputdir = /var/tmp/test_results
|
|
tags = ['functional']
|
|
|
|
[tests/functional/acl/posix:Linux]
|
|
tests = ['posix_001_pos', 'posix_002_pos', 'posix_003_pos', 'posix_004_pos']
|
|
tags = ['functional', 'acl', 'posix']
|
|
|
|
[tests/functional/acl/posix-sa:Linux]
|
|
tests = ['posix_001_pos', 'posix_002_pos', 'posix_003_pos', 'posix_004_pos']
|
|
tags = ['functional', 'acl', 'posix-sa']
|
|
|
|
[tests/functional/atime:Linux]
|
|
tests = ['atime_003_pos', 'root_relatime_on']
|
|
tags = ['functional', 'atime']
|
|
|
|
[tests/functional/chattr:Linux]
|
|
tests = ['chattr_001_pos', 'chattr_002_neg']
|
|
tags = ['functional', 'chattr']
|
|
|
|
[tests/functional/cli_root/zfs:Linux]
|
|
tests = ['zfs_003_neg']
|
|
tags = ['functional', 'cli_root', 'zfs']
|
|
|
|
[tests/functional/cli_root/zfs_mount:Linux]
|
|
tests = ['zfs_mount_006_pos', 'zfs_mount_008_pos', 'zfs_mount_013_pos',
|
|
'zfs_mount_014_neg', 'zfs_multi_mount']
|
|
tags = ['functional', 'cli_root', 'zfs_mount']
|
|
|
|
[tests/functional/cli_root/zfs_share:Linux]
|
|
tests = ['zfs_share_005_pos', 'zfs_share_007_neg', 'zfs_share_009_neg',
|
|
'zfs_share_012_pos', 'zfs_share_013_pos']
|
|
tags = ['functional', 'cli_root', 'zfs_share']
|
|
|
|
[tests/functional/cli_root/zfs_sysfs:Linux]
|
|
tests = ['zfeature_set_unsupported', 'zfs_get_unsupported',
|
|
'zfs_set_unsupported', 'zfs_sysfs_live', 'zpool_get_unsupported',
|
|
'zpool_set_unsupported']
|
|
tags = ['functional', 'cli_root', 'zfs_sysfs']
|
|
|
|
[tests/functional/cli_root/zpool_add:Linux]
|
|
tests = ['add_nested_replacing_spare']
|
|
tags = ['functional', 'cli_root', 'zpool_add']
|
|
|
|
[tests/functional/cli_root/zpool_expand:Linux]
|
|
tests = ['zpool_expand_001_pos', 'zpool_expand_002_pos',
|
|
'zpool_expand_003_neg', 'zpool_expand_004_pos', 'zpool_expand_005_pos']
|
|
tags = ['functional', 'cli_root', 'zpool_expand']
|
|
|
|
[tests/functional/cli_root/zpool_reopen:Linux]
|
|
tests = ['zpool_reopen_001_pos', 'zpool_reopen_002_pos',
|
|
'zpool_reopen_003_pos', 'zpool_reopen_004_pos', 'zpool_reopen_005_pos',
|
|
'zpool_reopen_006_neg', 'zpool_reopen_007_pos']
|
|
tags = ['functional', 'cli_root', 'zpool_reopen']
|
|
|
|
[tests/functional/cli_root/zpool_split:Linux]
|
|
tests = ['zpool_split_wholedisk']
|
|
tags = ['functional', 'cli_root', 'zpool_split']
|
|
|
|
[tests/functional/compression:Linux]
|
|
tests = ['compress_004_pos']
|
|
tags = ['functional', 'compression']
|
|
|
|
[tests/functional/devices:Linux]
|
|
tests = ['devices_001_pos', 'devices_002_neg', 'devices_003_pos']
|
|
tags = ['functional', 'devices']
|
|
|
|
[tests/functional/events:Linux]
|
|
tests = ['events_001_pos', 'events_002_pos', 'zed_rc_filter', 'zed_fd_spill']
|
|
tags = ['functional', 'events']
|
|
|
|
[tests/functional/fadvise:Linux]
|
|
tests = ['fadvise_sequential']
|
|
tags = ['functional', 'fadvise']
|
|
|
|
[tests/functional/fallocate:Linux]
|
|
tests = ['fallocate_prealloc', 'fallocate_zero-range']
|
|
tags = ['functional', 'fallocate']
|
|
|
|
[tests/functional/fault:Linux]
|
|
tests = ['auto_offline_001_pos', 'auto_online_001_pos', 'auto_online_002_pos',
|
|
'auto_replace_001_pos', 'auto_spare_001_pos', 'auto_spare_002_pos',
|
|
'auto_spare_multiple', 'auto_spare_ashift', 'auto_spare_shared',
|
|
'decrypt_fault', 'decompress_fault', 'scrub_after_resilver',
|
|
'zpool_status_-s']
|
|
tags = ['functional', 'fault']
|
|
|
|
[tests/functional/features/large_dnode:Linux]
|
|
tests = ['large_dnode_002_pos', 'large_dnode_006_pos', 'large_dnode_008_pos']
|
|
tags = ['functional', 'features', 'large_dnode']
|
|
|
|
[tests/functional/io:Linux]
|
|
tests = ['libaio', 'io_uring']
|
|
tags = ['functional', 'io']
|
|
|
|
[tests/functional/largest_pool:Linux]
|
|
tests = ['largest_pool_001_pos']
|
|
pre =
|
|
post =
|
|
tags = ['functional', 'largest_pool']
|
|
|
|
[tests/functional/mmap:Linux]
|
|
tests = ['mmap_libaio_001_pos']
|
|
tags = ['functional', 'mmap']
|
|
|
|
[tests/functional/mmp:Linux]
|
|
tests = ['mmp_on_thread', 'mmp_on_uberblocks', 'mmp_on_off', 'mmp_interval',
|
|
'mmp_active_import', 'mmp_inactive_import', 'mmp_exported_import',
|
|
'mmp_write_uberblocks', 'mmp_reset_interval', 'multihost_history',
|
|
'mmp_on_zdb', 'mmp_write_distribution', 'mmp_hostid']
|
|
tags = ['functional', 'mmp']
|
|
|
|
[tests/functional/mount:Linux]
|
|
tests = ['umount_unlinked_drain']
|
|
tags = ['functional', 'mount']
|
|
|
|
[tests/functional/pam:Linux]
|
|
tests = ['pam_basic', 'pam_nounmount', 'pam_short_password']
|
|
tags = ['functional', 'pam']
|
|
|
|
[tests/functional/procfs:Linux]
|
|
tests = ['procfs_list_basic', 'procfs_list_concurrent_readers',
|
|
'procfs_list_stale_read', 'pool_state']
|
|
tags = ['functional', 'procfs']
|
|
|
|
[tests/functional/projectquota:Linux]
|
|
tests = ['projectid_001_pos', 'projectid_002_pos', 'projectid_003_pos',
|
|
'projectquota_001_pos', 'projectquota_002_pos', 'projectquota_003_pos',
|
|
'projectquota_004_neg', 'projectquota_005_pos', 'projectquota_006_pos',
|
|
'projectquota_007_pos', 'projectquota_008_pos', 'projectquota_009_pos',
|
|
'projectspace_001_pos', 'projectspace_002_pos', 'projectspace_003_pos',
|
|
'projectspace_004_pos',
|
|
'projecttree_001_pos', 'projecttree_002_pos', 'projecttree_003_neg']
|
|
tags = ['functional', 'projectquota']
|
|
|
|
[tests/functional/dos_attributes:Linux]
|
|
tests = ['read_dos_attrs_001', 'write_dos_attrs_001']
|
|
tags = ['functional', 'dos_attributes']
|
|
|
|
[tests/functional/renameat2:Linux]
|
|
tests = ['renameat2_noreplace', 'renameat2_exchange', 'renameat2_whiteout']
|
|
tags = ['functional', 'renameat2']
|
|
|
|
[tests/functional/rsend:Linux]
|
|
tests = ['send_realloc_dnode_size', 'send_encrypted_files']
|
|
tags = ['functional', 'rsend']
|
|
|
|
[tests/functional/simd:Linux]
|
|
pre =
|
|
post =
|
|
tests = ['simd_supported']
|
|
tags = ['functional', 'simd']
|
|
|
|
[tests/functional/snapshot:Linux]
|
|
tests = ['snapshot_015_pos', 'snapshot_016_pos']
|
|
tags = ['functional', 'snapshot']
|
|
|
|
[tests/functional/tmpfile:Linux]
|
|
tests = ['tmpfile_001_pos', 'tmpfile_002_pos', 'tmpfile_003_pos',
|
|
'tmpfile_stat_mode']
|
|
tags = ['functional', 'tmpfile']
|
|
|
|
[tests/functional/upgrade:Linux]
|
|
tests = ['upgrade_projectquota_001_pos']
|
|
tags = ['functional', 'upgrade']
|
|
|
|
[tests/functional/user_namespace:Linux]
|
|
tests = ['user_namespace_001', 'user_namespace_002', 'user_namespace_003',
|
|
'user_namespace_004']
|
|
tags = ['functional', 'user_namespace']
|
|
|
|
[tests/functional/userquota:Linux]
|
|
tests = ['groupspace_001_pos', 'groupspace_002_pos', 'groupspace_003_pos',
|
|
'userquota_013_pos', 'userspace_003_pos']
|
|
tags = ['functional', 'userquota']
|
|
|
|
[tests/functional/zvol/zvol_misc:Linux]
|
|
tests = ['zvol_misc_fua']
|
|
tags = ['functional', 'zvol', 'zvol_misc']
|
|
|
|
[tests/functional/idmap_mount:Linux]
|
|
tests = ['idmap_mount_001', 'idmap_mount_002', 'idmap_mount_003',
|
|
'idmap_mount_004']
|
|
tags = ['functional', 'idmap_mount']
|