forked from openzfs/zfs
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Refine special_small_blocks property validation
When the special_small_blocks property is being set during a pool create it enforces a limit of 128KiB even if the pool's record size is larger. If the recordsize property is being set during a pool create, then use that value instead of the default SPA_OLD_MAXBLOCKSIZE value. Reviewed-by: Brian Behlendorf <[email protected]> Signed-off-by: Don Brady <[email protected]> Closes openzfs#13815 Closes openzfs#14811
- Loading branch information
Showing
5 changed files
with
93 additions
and
2 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
38 changes: 38 additions & 0 deletions
38
tests/zfs-tests/tests/functional/alloc_class/alloc_class_014_neg.ksh
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,38 @@ | ||
#!/bin/ksh -p | ||
|
||
# | ||
# 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. | ||
# | ||
|
||
. $STF_SUITE/tests/functional/alloc_class/alloc_class.kshlib | ||
|
||
# | ||
# DESCRIPTION: | ||
# Setting the special_small_blocks property greater than recordsize fails. | ||
# | ||
|
||
verify_runnable "global" | ||
|
||
claim="Setting the special_small_blocks property greater than recordsize fails" | ||
|
||
log_assert $claim | ||
log_onexit cleanup | ||
log_must disk_setup | ||
|
||
for size in 512 4096 32768 131072 524288 1048576 | ||
do | ||
let bigger=$size*2 | ||
log_mustnot zpool create -O recordsize=$size \ | ||
-O special_small_blocks=$bigger \ | ||
$TESTPOOL raidz $ZPOOL_DISKS special mirror \ | ||
$CLASS_DISK0 $CLASS_DISK1 | ||
done | ||
|
||
log_pass $claim |
45 changes: 45 additions & 0 deletions
45
tests/zfs-tests/tests/functional/alloc_class/alloc_class_015_pos.ksh
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,45 @@ | ||
#!/bin/ksh -p | ||
|
||
# | ||
# 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. | ||
# | ||
|
||
. $STF_SUITE/tests/functional/alloc_class/alloc_class.kshlib | ||
|
||
# | ||
# DESCRIPTION: | ||
# Can set special_small_blocks property less than or equal to recordsize. | ||
# | ||
|
||
verify_runnable "global" | ||
|
||
claim="Can set special_small_blocks property less than or equal to recordsize" | ||
|
||
log_assert $claim | ||
log_onexit cleanup | ||
log_must disk_setup | ||
|
||
for size in 8192 32768 131072 524288 1048576 | ||
do | ||
let smaller=$size/2 | ||
log_must zpool create -O recordsize=$size \ | ||
-O special_small_blocks=$smaller \ | ||
$TESTPOOL raidz $ZPOOL_DISKS special mirror \ | ||
$CLASS_DISK0 $CLASS_DISK1 | ||
log_must zpool destroy -f "$TESTPOOL" | ||
|
||
log_must zpool create -O recordsize=$size \ | ||
-O special_small_blocks=$size \ | ||
$TESTPOOL raidz $ZPOOL_DISKS special mirror \ | ||
$CLASS_DISK0 $CLASS_DISK1 | ||
log_must zpool destroy -f "$TESTPOOL" | ||
done | ||
|
||
log_pass $claim |