mirror_zfs/tests/zfs-tests/tests/functional
Brian Behlendorf 145af480d3 Fix ENOSPC when unlinking multiple files from full pool
When unlinking multiple files from a pool at 100% capacity, it was
possible for ENOSPC to be returned after the first unlink.  e.g.

    rm -f /mnt/fs/test1.0.0 /mnt/fs/test1.1.0 /mnt/fs/test1.2.0
    rm: cannot remove '/mnt/fs/test1.1.0': No space left on device
    rm: cannot remove '/mnt/fs/test1.2.0': No space left on device

After waiting for the pending deferred frees from the first unlink to
be processed the remaining files can then be unlinked.  This is caused
by the quota limit in dsl_dir_tempreserve_impl() being temporarily
decreased to the allocatable pool capacity less any deferred free
space.

This is resolved using the existing mechanism of returning ERESTART
when over quota as long as we know enough space will shortly be
available after processing the pending deferred frees.

Reviewed-by: Alexander Motin <mav@FreeBSD.org>
Reviewed-by: Ryan Moeller <freqlabs@FreeBSD.org>
Reviewed-by: Tony Hutter <hutter2@llnl.gov>
Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Closes #13172
2022-03-08 11:46:03 -08:00
..
acl Fix regression in POSIX mode behavior 2021-03-19 22:50:46 -07:00
alloc_class ZTS: alloc_class.ksh must wait for the process to exit 2022-02-10 11:05:07 -08:00
arc Make dbufstat work on FreeBSD 2020-10-08 09:40:23 -07:00
atime Replace ZoL with OpenZFS where applicable 2021-05-10 12:16:46 -07:00
bootfs ZTS: Standardize use of destroy_dataset in cleanup 2021-11-02 09:51:32 -07:00
btree ZTS: Fix ksh path in btree tests 2020-01-15 16:23:29 -08:00
cache ZTS: Fix and change testcase cache_010_neg 2020-04-13 10:50:41 -07:00
cachefile Fix typos in tests/ 2019-09-02 18:14:53 -07:00
casenorm ZTS: Standardize use of destroy_dataset in cleanup 2021-11-02 09:51:32 -07:00
channel_program ZTS: Standardize use of destroy_dataset in cleanup 2021-11-02 09:51:32 -07:00
chattr Update ZTS to work on FreeBSD 2019-12-18 12:29:43 -08:00
checksum ZTS: Add L1 corruption test 2020-11-05 17:16:25 -08:00
clean_mirror ZTS: clean_mirror and scrub_mirror cleanup 2018-07-09 12:46:14 -07:00
cli_root ZTS: Fix import_devices_missing.ksh 2022-03-02 11:27:05 -08:00
cli_user Correct flaws in arc_summary[23] and their test. 2021-05-27 22:31:57 -07:00
compression Add zstd support to zfs 2020-08-20 10:30:06 -07:00
cp_files Fix ENOSPC in "Handle zap_add() failures in ..." 2018-04-18 14:19:50 -07:00
crtime ZTS: Add tests for creation time 2021-09-14 14:32:16 -07:00
ctime Update ZTS to work on FreeBSD 2019-12-18 12:29:43 -08:00
deadman ZTS: deadman_sync fix 2022-03-07 15:17:49 -08:00
delegate Clarify comments in config/*.m4, vdev_geom.c, zfs_allow_*.ksh 2020-06-22 09:46:37 -07:00
devices ZTS: devices_001_pos and devices_002_neg 2019-12-27 12:11:27 -08:00
events ZTS: add zed_fd_spill to verify the fds ZEDLETs inherit 2021-04-19 15:12:45 -07:00
exec Enable remaining tests 2017-05-22 12:34:32 -04:00
fallocate ZTS: Enable punch-hole tests on FreeBSD 2022-02-16 17:58:55 -08:00
fault ZED: Match added disk by pool/vdev GUID if found (#12217) 2021-09-14 12:10:44 -07:00
features ZTS: Standardize use of destroy_dataset in cleanup 2021-11-02 09:51:32 -07:00
grow ZTS: Adopt OpenZFS test analysis script 2018-06-20 14:03:13 -07:00
history ZTS: Avoid piping send directly to /dev/null 2022-02-10 11:04:57 -08:00
hkdf Use abs_top_builddir when referencing libraries 2020-07-10 14:26:32 -07:00
inheritance Fixes for make dist 2020-06-26 14:20:02 -07:00
inuse ZTS: Eliminate partitioning from zpool_create etc 2020-02-20 08:10:13 -08:00
io Add basic io_uring test 2021-01-23 15:42:42 -08:00
l2arc Fixes in persistent L2ARC 2021-09-14 13:07:44 -07:00
large_files ZTS: Another round of changes for FreeBSD 2020-03-06 09:31:32 -08:00
largest_pool ZTS: Standardize use of destroy_dataset in cleanup 2021-11-02 09:51:32 -07:00
libzfs Use abs_top_builddir when referencing libraries 2020-07-10 14:26:32 -07:00
limits Linux 4.10 compat: has_capability() 2020-07-19 09:56:21 -07:00
link_count ZTS: Add zts-report exceptions for FreeBSD 2020-03-04 15:09:40 -08:00
log_spacemap ZTS: Catalog tunable names for tests in tunables.cfg 2020-01-14 14:57:28 -08:00
migration ZTS: Fix a few defaults 2020-01-31 08:51:23 -08:00
mmap Fix lseek(SEEK_DATA/SEEK_HOLE) mmap consistency 2021-11-05 08:08:55 -07:00
mmp ZTS: Catalog tunable names for tests in tunables.cfg 2020-01-14 14:57:28 -08:00
mount ZTS: Catalog tunable names for tests in tunables.cfg 2020-01-14 14:57:28 -08:00
mv_files ZTS: Provide an alternative to shuf for FreeBSD 2020-01-09 09:31:17 -08:00
nestedfs OpenZFS 7290 - ZFS test suite needs to control what utilities it can run 2017-04-06 09:25:36 -07:00
no_space Fix ENOSPC when unlinking multiple files from full pool 2022-03-08 11:46:03 -08:00
nopwrite ZTS: Standardize use of destroy_dataset in cleanup 2021-11-02 09:51:32 -07:00
online_offline Add subcommand to wait for background zfs activity to complete 2019-09-13 18:09:06 -07:00
pam pam: implement a zfs_key pam module 2020-06-24 18:45:44 -07:00
pool_checkpoint ZTS: Fix checkpoint_ro_rewind.ksh 2022-02-16 17:58:56 -08:00
pool_names Allow pool names that look like Solaris disk names 2021-04-07 13:24:46 -07:00
poolversion Fix some ZFS Test Suite issues 2017-09-25 10:32:34 -07:00
privilege ZTS: Move privilege tests to sunos.run 2020-02-21 08:52:44 -08:00
procfs ZTS: Standardize use of destroy_dataset in cleanup 2021-11-02 09:51:32 -07:00
projectquota ZTS: Standardize use of destroy_dataset in cleanup 2021-11-02 09:51:32 -07:00
pyzfs Centralize variable substitution 2020-07-14 17:33:44 -07:00
quota ZTS: Standardize use of destroy_dataset in cleanup 2021-11-02 09:51:32 -07:00
raidz Distributed Spare (dRAID) Feature 2020-11-13 13:51:51 -08:00
redacted_send ZTS: Avoid unset $tmpdir in redacted_panic 2021-09-14 14:31:01 -07:00
redundancy Add enumerated vdev names to 'zpool iostat -v' and 'zpool list -v' 2022-02-16 17:58:55 -08:00
refquota ZTS: Catalog tunable names for tests in tunables.cfg 2020-01-14 14:57:28 -08:00
refreserv ZTS: Fix refreserv_raidz.ksh 2022-02-16 17:58:55 -08:00
removal ZTS: fix removal_condense_export test case 2021-04-14 13:23:08 -07:00
rename_dirs Enable remaining tests 2017-05-22 12:34:32 -04:00
replacement Fix various typos 2021-04-07 13:27:11 -07:00
reservation Remove basename(1). Clean up/shorten some coreutils pipelines 2022-02-16 17:58:55 -08:00
rootpool Update ZTS to work on FreeBSD 2019-12-18 12:29:43 -08:00
rsend Enable encrypted raw sending to pools with greater ashift 2022-02-23 16:47:37 -08:00
scrub_mirror ZTS: clean_mirror and scrub_mirror cleanup 2018-07-09 12:46:14 -07:00
simd Linux 5.16 compat: don't use XSTATE_XSAVE to save FPU state 2022-02-16 17:58:55 -08:00
slog ZTS: Fix faulty slog_replay_fs_001 test 2020-02-20 08:11:51 -08:00
snapshot ZTS: Fix rollback_003_pos.ksh 2022-02-16 17:58:55 -08:00
snapused ZTS: Standardize use of destroy_dataset in cleanup 2021-11-02 09:51:32 -07:00
sparse ZTS: Adopt OpenZFS test analysis script 2018-06-20 14:03:13 -07:00
suid Fix clearing set-uid and set-gid bits on a file when replying a write 2022-02-16 17:58:55 -08:00
threadsappend ZTS: Adopt OpenZFS test analysis script 2018-06-20 14:03:13 -07:00
tmpfile Mark functions as static 2020-06-18 12:20:38 -07:00
trim Distributed Spare (dRAID) Feature 2020-11-13 13:51:51 -08:00
truncate Update ZTS to work on FreeBSD 2019-12-18 12:29:43 -08:00
upgrade ZTS: Fix upgrade_readonly_pool 2019-10-03 09:39:13 -07:00
user_namespace Fix "file is executable, but no shebang" warnings 2018-04-06 16:34:21 -07:00
userquota Introduce a flag to skip comparing the local mac when raw sending 2022-02-04 16:14:56 -08:00
vdev_zaps ZTS: Fix vdev_zaps_005_pos on CentOS 6 2019-08-22 08:53:44 -07:00
write_dirs Fix typos 2020-06-09 21:24:09 -07:00
xattr ZTS: Fix xattr_002_neg passing too soon 2021-05-10 12:09:42 -07:00
zpool_influxdb Add zpool_influxdb command 2020-10-09 09:29:21 -07:00
zvol ZTS: Fix zvol_misc_volmode test 2022-02-16 17:58:56 -08:00
Makefile.am Linux 5.16 compat: don't use XSTATE_XSAVE to save FPU state 2022-02-16 17:58:55 -08:00