summaryrefslogtreecommitdiff
path: root/sys-fs/zfs-kmod
diff options
context:
space:
mode:
authorV3n3RiX <venerix@koprulu.sector>2022-05-12 16:42:50 +0300
committerV3n3RiX <venerix@koprulu.sector>2022-05-12 16:42:50 +0300
commit752d6256e5204b958b0ef7905675a940b5e9172f (patch)
tree330d16e6362a49cbed8875a777fe641a43376cd3 /sys-fs/zfs-kmod
parent0c100b7dd2b30e75b799d806df4ef899fd98e1ea (diff)
gentoo resync : 12.05.2022
Diffstat (limited to 'sys-fs/zfs-kmod')
-rw-r--r--sys-fs/zfs-kmod/Manifest7
-rw-r--r--sys-fs/zfs-kmod/files/2.1.3-werror.patch30
-rw-r--r--sys-fs/zfs-kmod/files/2.1.4-ZERO_RANGE.patch304
-rw-r--r--sys-fs/zfs-kmod/zfs-kmod-2.1.3.ebuild209
-rw-r--r--sys-fs/zfs-kmod/zfs-kmod-2.1.4-r1.ebuild (renamed from sys-fs/zfs-kmod/zfs-kmod-2.1.4.ebuild)6
5 files changed, 311 insertions, 245 deletions
diff --git a/sys-fs/zfs-kmod/Manifest b/sys-fs/zfs-kmod/Manifest
index a589a7a4fd56..47c92b43933c 100644
--- a/sys-fs/zfs-kmod/Manifest
+++ b/sys-fs/zfs-kmod/Manifest
@@ -1,18 +1,15 @@
AUX 0.8.6-copy-builtin.patch 988 BLAKE2B f79add4b341075e3cd98b6aee4bb74b8fadd28b5ee1062f9260c0418909d380cdd2d637b52d4959ec19cafec1e55b1d05cd6bc358fdffbd6dc1b159e9935083d SHA512 af6b73a2d9d1b4e028c9b959950934798f4d048211d6e4a7e94595982ad2dc8bb4befd52122e3fa0890548e192f2f2ae41d877cad057543e940a7c2710c81a23
-AUX 2.1.3-werror.patch 1008 BLAKE2B 612c91254cef19ef05fd35e5a458f28d22a8d9f51656b8ffdf3be0b07c7c72668c954c0caa2b8eb215060df1c190cb77248baed41568aded6076a048dfee0f6e SHA512 075a3ff6800420e56662c6453a0d4ccf9ea63c8f1e76e690d46f7a3cb0eff3b392caa6a050e306e7b8b14e20ed925cbb6381d442b4845f6178f5026667ae9081
+AUX 2.1.4-ZERO_RANGE.patch 9454 BLAKE2B 5baaef961eb75ee0b46ccb89a514612795b829fe410da1587330f81c2d9550c3fc049f32952e3d67d06a80a3fcc69fe9121fc9f44c1f467570f2d81f1f3a5386 SHA512 95558f6de1b901cdcd7aaa0cc704bf75375a39a5d89da02a0665494a84646f9974e0bc8ff869b622a3a7031db279ff76029ebc33ec1f5f8a129b560ffa565349
DIST zfs-0.8.6.tar.gz 9295260 BLAKE2B 45424d710aaf75a05f766ae523ae157a24b5cbdcefe72a59e4cede81e42f7a92ae7f01150388437b78cd49f3d28b9664599f2a624516e6b3f1073497194a99f2 SHA512 626b172554f39a5c70f6ea5c599a92fae52534590d1b0273de2bbfc3676d29dff0eade8ca17e5f179a59870c12bc758fb53b7900f8a1fdbdef3a9161b93f9cce
DIST zfs-2.0.7.tar.gz 14550055 BLAKE2B 80f7297f04a21cd8f3f2043d895b0325512ba0cea3bb9223561237754495c8233d29af5a9418a3c06a87510100240a45ef3d59c7ce776fffb5aafdcd18167c21 SHA512 1135abf74bf74685439018f7cd65fc52088f179d113bdd2e6481689bb0f4a016716a07d859107b74501fda00689e80b2488c7c2c53d5f058d6b659909ed85f6f
DIST zfs-2.0.7.tar.gz.asc 836 BLAKE2B 65e7df58c33ccadc4e0ca9dbc1e8c006abbec8442e2da50872a1ab0cbb841fc45152298e8d3b93ee4320ddae6416e3a856caf80d8efb21b19db53dfedbf00e38 SHA512 b901d8e92faa6cfe6010bd54de88c7d18057f434cb07f8a89672d6c446a0a97b23209ee8f02cfd3b2a8f431c68ec977e7dc9f95fe5d385dba0bb6d37338ba682
DIST zfs-2.1.2.tar.gz 34829045 BLAKE2B ab4e2d85200438373c7eeeaa5256a712dbfb2862b85de1fb7554ad0cc2b9f8e1255ab4564bca62f65a81a823adb8c112957e6e8771b8e5e6944c3731bc894584 SHA512 3e3932259da2a27f1c4cca8da62b909edc43bf51ab0229d2d5d0234d9a7eaa7b63b67c06a98cbe2d29ba1eb5cbcaab16e5062c2a2bc8e84cab770be10ebf2102
DIST zfs-2.1.2.tar.gz.asc 836 BLAKE2B 8f5666f5c3d7016a4d79191f42d0a220fe8c654a0d64e3da3b575644fe52c83dcb9f9ef49ba0553771a127bba44e2802f1d366a7a38f670e73612deef76755c3 SHA512 da6bfccd19a249a6891f5e1de6c4b332e98ce4f125f638c046b9cedac3fd79c56a99dd9a620105a40741e5f04b382f5d5996b56cbe576fb268b31e57e0fed6eb
-DIST zfs-2.1.3.tar.gz 34898999 BLAKE2B b4fc59ae97c74661f1303e4ce6efd5304842d382e278633debc4475c32074b9d272379d5d4caf8155f7a8cb1cb2b871b8c61fc36e14a612220757c5703a4c50b SHA512 26525bff7d0a831de780883c11eec5b3a142bded269c1dce95a4c466e753feb851cbbc001f0fe40f40209801192f9094fe179570fd117f90931cf11116439aeb
-DIST zfs-2.1.3.tar.gz.asc 836 BLAKE2B 305d44ae02a28bc1dc24bb429a0454fdffe19a21e4a5f45ed924e81f8f1972638166a0cf64f99e92e53a50161886935a86c7d42d8fd9533b6b46c6c16c316d9a SHA512 6cdc92bc834f0b6bff9c0939224f1898729f2ae9b865f84906abb2a6b44a75f6aed6c256f03f81fe888d4edc7c421073b9b2f730b804fe532fd43cd127fdc505
DIST zfs-2.1.4.tar.gz 34896310 BLAKE2B be303f1181f604770536aa4aa61d5319ec408abbd04964cedadd15b3101a15deba6539bb5d833f4fed357f323d74f622d035305df699b213df41ae45bffdd200 SHA512 c7b57c43fc287b22905067ab022df4133d32e1a5dc335f7baf743b4ef88f64c2bf9d41318c2083230d077dd49e68f7d9e6172266e13d4b1eee29d359860f969e
DIST zfs-2.1.4.tar.gz.asc 836 BLAKE2B b311730f72d534c87a782515f35a354bfbefba0513dc0cee5b0b497cf742590f13be6a49ff8a70d7d6503d0ba06b0266e7d290d718337add614812c3d1b0731a SHA512 53880cd5369f468551bab685eb83739ed76aa286886fdd2cbad4270755fe809da730082a91bba61011f59594fac297ce05645ae32c2c73b4a9aa835f2991a1ee
EBUILD zfs-kmod-0.8.6.ebuild 5746 BLAKE2B b8d5cfa1c83f6ae0b565a0469f0c69def97fd536dc2645b623fe31cd2ca6d802976b3aacd05023ede636abb45c5a968256270809e4c080ace95993d640646f4b SHA512 758cbe8be086ade139b4559684e4cfd6b8b1c61273c88f15b7bb612ae49b89b59f05b8f843a8a4993833406769ca017c582e7dadeef41fc70732bac7d1aa944c
EBUILD zfs-kmod-2.0.7.ebuild 5624 BLAKE2B ec04bc269acb6ea08e202b2a52e9883bd7b16d436c9c0fea54247e73c163664a449997bf06058c24602aba7718c49a224f4e1adc74228a5837290b02bacabf37 SHA512 31b39f7a831e034fe6aeecb169dc46e1641c6844f74c4d74127b30cb691bb4fe4a52a998008c2a16b860398192508727cc3b87f9325d30b6e45f2d0d48ea2ee8
EBUILD zfs-kmod-2.1.2.ebuild 5260 BLAKE2B 4b518043257f793b8f3ec0e4aee6f758ae6cd7ab9ea587507e4517c9431c305fd82da279eceee860869677f52e93ac589507d4fedb200687d20d6cb6508c08d1 SHA512 ae320718801a32eec16f37d9937e6f0aebf31a362b04bc830642d510992a4810147980bf9826e747930e7b6c0ed885169436251aaffcabc796e535f0bfb3ebba
-EBUILD zfs-kmod-2.1.3.ebuild 5292 BLAKE2B 80d9d7cb25cf56286e6808a313a5033af257c5dbaaea8c29ad33c62f8ffb9372cfb50e1217435ab8eac57adac297f5f1b701412201229891e7cae05e16a48d16 SHA512 d26725a3274346917775a21e51b77ada79f025c00d477a9c8a888fca74fd2dedcb8d36af58616678cda7f48ed43da6fa5f2b157c4572b8dcde426831e31cf029
-EBUILD zfs-kmod-2.1.4.ebuild 5245 BLAKE2B 8614756dc32cca2fd5cf61048385b94b646f2d2b35fe5f20029afc5c3faf1e8fc1b1b2ec3e5abe4f9b120dd8c25af689911f130e9771626e2fae7b9fe14191e2 SHA512 96d80fa36f7c55aa6e8fd1ddd62be1ac5b4f5db16446729d82ccc15d6c18c803ccecc49355558bc779b0916d4832e7d24e367a6295a289268911863cce7bfa3f
+EBUILD zfs-kmod-2.1.4-r1.ebuild 5293 BLAKE2B 5ad5104f06e5ab2d64451ed47cd2ad49670faa68a69ad2837605bbe08cd68d7dcbf74fd3b0f0c78b758e8f003fc7d47dd8cf25867fedf75b24f5926a7c392e8d SHA512 a487c35ac982ab4b1a735e0d47b263eb89a8541732d21f7e3ad96816427e7193f52eec62ffab26fdd452e732c01140eb2a1baa569d7533df62be103538cfa814
EBUILD zfs-kmod-9999.ebuild 5245 BLAKE2B 8614756dc32cca2fd5cf61048385b94b646f2d2b35fe5f20029afc5c3faf1e8fc1b1b2ec3e5abe4f9b120dd8c25af689911f130e9771626e2fae7b9fe14191e2 SHA512 96d80fa36f7c55aa6e8fd1ddd62be1ac5b4f5db16446729d82ccc15d6c18c803ccecc49355558bc779b0916d4832e7d24e367a6295a289268911863cce7bfa3f
MISC metadata.xml 651 BLAKE2B 477c5d768a2eddab7bc0c14d0845801e25bfd9298fe229a132d7ff11a8560988d0230ec5d4b1447df32f58b9754df0cbe989f2a5600cd3fa99124ea4edc45cdd SHA512 d9bf0598c87bcdaab7d81dd5502caf1400f3c8d3834a6770630d85ed365cd4ebb3beeebae72d2d4d49bcdd0aa6cd709aa57cb2af4195dfc04a9c0cef89cfd724
diff --git a/sys-fs/zfs-kmod/files/2.1.3-werror.patch b/sys-fs/zfs-kmod/files/2.1.3-werror.patch
deleted file mode 100644
index b4aba47d8324..000000000000
--- a/sys-fs/zfs-kmod/files/2.1.3-werror.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-https://bugs.gentoo.org/835646
-https://github.com/openzfs/zfs/commit/7b215d93bcc0a72d7020ccc050c64f39aa7f2be8.patch
-
-From: Ryan Moeller <freqlabs@FreeBSD.org>
-Date: Thu, 17 Mar 2022 13:18:23 -0400
-Subject: [PATCH] Fix module build with -Werror
-
-This is a direct commit to zfs-2.1-release to fix release builds that
-error out on an unused variable. The issue is avoided on master by a
-huge series of commits that change how the ASSERT macros work, but that
-is not feasible to backport.
-
-Reviewed-by: Tony Hutter <hutter2@llnl.gov>
-Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
-Reviewed-by: Igor Kozhukhov <igor@dilos.org>
-Signed-off-by: Ryan Moeller <freqlabs@FreeBSD.org>
-Closes #13194
-Closes #13196
---- a/module/zfs/arc.c
-+++ b/module/zfs/arc.c
-@@ -1205,7 +1205,7 @@ static void
- hdr_l2only_dest(void *vbuf, void *unused)
- {
- (void) unused;
-- arc_buf_hdr_t *hdr = vbuf;
-+ arc_buf_hdr_t *hdr __maybe_unused = vbuf;
-
- ASSERT(HDR_EMPTY(hdr));
- arc_space_return(HDR_L2ONLY_SIZE, ARC_SPACE_L2HDRS);
-
diff --git a/sys-fs/zfs-kmod/files/2.1.4-ZERO_RANGE.patch b/sys-fs/zfs-kmod/files/2.1.4-ZERO_RANGE.patch
new file mode 100644
index 000000000000..338b14208dab
--- /dev/null
+++ b/sys-fs/zfs-kmod/files/2.1.4-ZERO_RANGE.patch
@@ -0,0 +1,304 @@
+https://github.com/openzfs/zfs/commit/c220771a47e4206fb43e6849957657c9504b1b14
+https://github.com/openzfs/zfs/issues/13329
+
+From c220771a47e4206fb43e6849957657c9504b1b14 Mon Sep 17 00:00:00 2001
+From: Rich Ercolani <214141+rincebrain@users.noreply.github.com>
+Date: Wed, 20 Apr 2022 19:07:03 -0400
+Subject: [PATCH] Corrected oversight in ZERO_RANGE behavior
+
+It turns out, no, in fact, ZERO_RANGE and PUNCH_HOLE do
+have differing semantics in some ways - in particular,
+one requires KEEP_SIZE, and the other does not.
+
+Also added a zero-range test to catch this, corrected a flaw
+that made the punch-hole test succeed vacuously, and a typo
+in file_write.
+
+Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
+Signed-off-by: Rich Ercolani <rincebrain@gmail.com>
+Closes #13329
+Closes #13338
+--- a/module/os/linux/zfs/zpl_file.c
++++ b/module/os/linux/zfs/zpl_file.c
+@@ -781,11 +781,13 @@ zpl_fallocate_common(struct inode *ip, int mode, loff_t offset, loff_t len)
+ if (mode & (test_mode)) {
+ flock64_t bf;
+
+- if (offset > olen)
+- goto out_unmark;
++ if (mode & FALLOC_FL_KEEP_SIZE) {
++ if (offset > olen)
++ goto out_unmark;
+
+- if (offset + len > olen)
+- len = olen - offset;
++ if (offset + len > olen)
++ len = olen - offset;
++ }
+ bf.l_type = F_WRLCK;
+ bf.l_whence = SEEK_SET;
+ bf.l_start = offset;
+--- a/tests/runfiles/linux.run
++++ b/tests/runfiles/linux.run
+@@ -94,7 +94,7 @@ tests = ['events_001_pos', 'events_002_pos', 'zed_rc_filter', 'zed_fd_spill']
+ tags = ['functional', 'events']
+
+ [tests/functional/fallocate:Linux]
+-tests = ['fallocate_prealloc']
++tests = ['fallocate_prealloc', 'fallocate_zero-range']
+ tags = ['functional', 'fallocate']
+
+ [tests/functional/fault:Linux]
+--- a/tests/zfs-tests/cmd/file_write/file_write.c
++++ b/tests/zfs-tests/cmd/file_write/file_write.c
+@@ -251,7 +251,7 @@ usage(char *prog)
+ "\t[-s offset] [-c write_count] [-d data]\n\n"
+ "Where [data] equal to zero causes chars "
+ "0->%d to be repeated throughout, or [data]\n"
+- "equal to 'R' for psudorandom data.\n",
++ "equal to 'R' for pseudorandom data.\n",
+ prog, DATA_RANGE);
+
+ exit(1);
+--- a/tests/zfs-tests/include/libtest.shlib
++++ b/tests/zfs-tests/include/libtest.shlib
+@@ -4236,6 +4236,22 @@ function punch_hole # offset length file
+ esac
+ }
+
++function zero_range # offset length file
++{
++ typeset offset=$1
++ typeset length=$2
++ typeset file=$3
++
++ case "$UNAME" in
++ Linux)
++ fallocate --zero-range --offset $offset --length $length "$file"
++ ;;
++ *)
++ false
++ ;;
++ esac
++}
++
+ #
+ # Wait for the specified arcstat to reach non-zero quiescence.
+ # If echo is 1 echo the value after reaching quiescence, otherwise
+--- a/tests/zfs-tests/tests/functional/fallocate/Makefile.am
++++ b/tests/zfs-tests/tests/functional/fallocate/Makefile.am
+@@ -3,4 +3,5 @@ dist_pkgdata_SCRIPTS = \
+ setup.ksh \
+ cleanup.ksh \
+ fallocate_prealloc.ksh \
+- fallocate_punch-hole.ksh
++ fallocate_punch-hole.ksh \
++ fallocate_zero-range.ksh
+--- a/tests/zfs-tests/tests/functional/fallocate/fallocate_punch-hole.ksh
++++ b/tests/zfs-tests/tests/functional/fallocate/fallocate_punch-hole.ksh
+@@ -60,13 +60,17 @@ function cleanup
+ [[ -e $TESTDIR ]] && log_must rm -f $FILE
+ }
+
+-function check_disk_size
++function check_reported_size
+ {
+ typeset expected_size=$1
+
+- disk_size=$(du $TESTDIR/file | awk '{print $1}')
+- if [ $disk_size -ne $expected_size ]; then
+- log_fail "Incorrect size: $disk_size != $expected_size"
++ if ! [ -e "${FILE}" ]; then
++ log_fail "$FILE does not exist"
++ fi
++
++ reported_size=$(du "${FILE}" | awk '{print $1}')
++ if [ "$reported_size" != "$expected_size" ]; then
++ log_fail "Incorrect reported size: $reported_size != $expected_size"
+ fi
+ }
+
+@@ -74,9 +78,9 @@ function check_apparent_size
+ {
+ typeset expected_size=$1
+
+- apparent_size=$(stat_size)
+- if [ $apparent_size -ne $expected_size ]; then
+- log_fail "Incorrect size: $apparent_size != $expected_size"
++ apparent_size=$(stat_size "${FILE}")
++ if [ "$apparent_size" != "$expected_size" ]; then
++ log_fail "Incorrect apparent size: $apparent_size != $expected_size"
+ fi
+ }
+
+@@ -86,25 +90,30 @@ log_onexit cleanup
+
+ # Create a dense file and check it is the correct size.
+ log_must file_write -o create -f $FILE -b $BLKSZ -c 8
+-log_must check_disk_size $((131072 * 8))
++sync_pool $TESTPOOL
++log_must check_reported_size 1027
+
+ # Punch a hole for the first full block.
+ log_must punch_hole 0 $BLKSZ $FILE
+-log_must check_disk_size $((131072 * 7))
++sync_pool $TESTPOOL
++log_must check_reported_size 899
+
+ # Partially punch a hole in the second block.
+ log_must punch_hole $BLKSZ $((BLKSZ / 2)) $FILE
+-log_must check_disk_size $((131072 * 7))
++sync_pool $TESTPOOL
++log_must check_reported_size 899
+
+-# Punch a hole which overlaps the third and forth block.
++# Punch a hole which overlaps the third and fourth block.
+ log_must punch_hole $(((BLKSZ * 2) + (BLKSZ / 2))) $((BLKSZ)) $FILE
+-log_must check_disk_size $((131072 * 7))
++sync_pool $TESTPOOL
++log_must check_reported_size 899
+
+ # Punch a hole from the fifth block past the end of file. The apparent
+ # file size should not change since --keep-size is implied.
+ apparent_size=$(stat_size $FILE)
+ log_must punch_hole $((BLKSZ * 4)) $((BLKSZ * 10)) $FILE
+-log_must check_disk_size $((131072 * 4))
++sync_pool $TESTPOOL
++log_must check_reported_size 387
+ log_must check_apparent_size $apparent_size
+
+ log_pass "Ensure holes can be punched in files making them sparse"
+--- /dev/null
++++ b/tests/zfs-tests/tests/functional/fallocate/fallocate_zero-range.ksh
+@@ -0,0 +1,119 @@
++#!/bin/ksh -p
++#
++# CDDL HEADER START
++#
++# The contents of this file are subject to the terms of the
++# Common Development and Distribution License (the "License").
++# You may not use this file except in compliance with the License.
++#
++# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
++# or http://www.opensolaris.org/os/licensing.
++# See the License for the specific language governing permissions
++# and limitations under the License.
++#
++# When distributing Covered Code, include this CDDL HEADER in each
++# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
++# If applicable, add the following below this CDDL HEADER, with the
++# fields enclosed by brackets "[]" replaced with your own identifying
++# information: Portions Copyright [yyyy] [name of copyright owner]
++#
++# CDDL HEADER END
++#
++
++#
++# Copyright (c) 2020 by Lawrence Livermore National Security, LLC.
++# Copyright (c) 2021 by The FreeBSD Foundation.
++#
++
++. $STF_SUITE/include/libtest.shlib
++
++#
++# DESCRIPTION:
++# Test FALLOC_FL_ZERO_RANGE functionality
++#
++# STRATEGY:
++# 1. Create a dense file
++# 2. Zero various ranges in the file and verify the result.
++#
++
++verify_runnable "global"
++
++if is_freebsd; then
++ log_unsupported "FreeBSD does not implement an analogue to ZERO_RANGE."
++fi
++
++FILE=$TESTDIR/$TESTFILE0
++BLKSZ=$(get_prop recordsize $TESTPOOL)
++
++function cleanup
++{
++ [[ -e $TESTDIR ]] && log_must rm -f $FILE
++}
++
++# Helpfully, this function expects kilobytes, and check_apparent_size expects bytes.
++function check_reported_size
++{
++ typeset expected_size=$1
++
++ if ! [ -e "${FILE}" ]; then
++ log_fail "$FILE does not exist"
++ fi
++
++ reported_size=$(du "${FILE}" | awk '{print $1}')
++ if [ "$reported_size" != "$expected_size" ]; then
++ log_fail "Incorrect reported size: $reported_size != $expected_size"
++ fi
++}
++
++function check_apparent_size
++{
++ typeset expected_size=$1
++
++ apparent_size=$(stat_size "${FILE}")
++ if [ "$apparent_size" != "$expected_size" ]; then
++ log_fail "Incorrect apparent size: $apparent_size != $expected_size"
++ fi
++}
++
++log_assert "Ensure ranges can be zeroed in files"
++
++log_onexit cleanup
++
++# Create a dense file and check it is the correct size.
++log_must file_write -o create -f $FILE -b $BLKSZ -c 8
++sync_pool $TESTPOOL
++log_must check_reported_size 1027
++
++# Zero a range covering the first full block.
++log_must zero_range 0 $BLKSZ $FILE
++sync_pool $TESTPOOL
++log_must check_reported_size 899
++
++# Partially zero a range in the second block.
++log_must zero_range $BLKSZ $((BLKSZ / 2)) $FILE
++sync_pool $TESTPOOL
++log_must check_reported_size 899
++
++# Zero range which overlaps the third and fourth block.
++log_must zero_range $(((BLKSZ * 2) + (BLKSZ / 2))) $((BLKSZ)) $FILE
++sync_pool $TESTPOOL
++log_must check_reported_size 899
++
++# Zero range from the fifth block past the end of file, with --keep-size.
++# The apparent file size must not change, since we did specify --keep-size.
++apparent_size=$(stat_size $FILE)
++log_must fallocate --keep-size --zero-range --offset $((BLKSZ * 4)) --length $((BLKSZ * 10)) "$FILE"
++sync_pool $TESTPOOL
++log_must check_reported_size 387
++log_must check_apparent_size $apparent_size
++
++# Zero range from the fifth block past the end of file. The apparent
++# file size should change since --keep-size is not implied, unlike
++# with PUNCH_HOLE.
++apparent_size=$(stat_size $FILE)
++log_must zero_range $((BLKSZ * 4)) $((BLKSZ * 10)) $FILE
++sync_pool $TESTPOOL
++log_must check_reported_size 387
++log_must check_apparent_size $((BLKSZ * 14))
++
++log_pass "Ensure ranges can be zeroed in files"
+--- a/tests/zfs-tests/tests/functional/fallocate/setup.ksh
++++ b/tests/zfs-tests/tests/functional/fallocate/setup.ksh
+@@ -26,4 +26,7 @@
+ . $STF_SUITE/include/libtest.shlib
+
+ DISK=${DISKS%% *}
+-default_setup $DISK
++default_setup_noexit $DISK
++log_must zfs set compression=off $TESTPOOL
++log_pass
++
+
diff --git a/sys-fs/zfs-kmod/zfs-kmod-2.1.3.ebuild b/sys-fs/zfs-kmod/zfs-kmod-2.1.3.ebuild
deleted file mode 100644
index 39f9cc590a1a..000000000000
--- a/sys-fs/zfs-kmod/zfs-kmod-2.1.3.ebuild
+++ /dev/null
@@ -1,209 +0,0 @@
-# Copyright 1999-2022 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-inherit autotools dist-kernel-utils flag-o-matic linux-mod toolchain-funcs
-
-DESCRIPTION="Linux ZFS kernel module for sys-fs/zfs"
-HOMEPAGE="https://github.com/openzfs/zfs"
-
-if [[ ${PV} == "9999" ]]; then
- inherit git-r3
- EGIT_REPO_URI="https://github.com/openzfs/zfs.git"
-else
- VERIFY_SIG_OPENPGP_KEY_PATH=${BROOT}/usr/share/openpgp-keys/openzfs.asc
- inherit verify-sig
-
- MY_PV="${PV/_rc/-rc}"
- SRC_URI="https://github.com/openzfs/zfs/releases/download/zfs-${MY_PV}/zfs-${MY_PV}.tar.gz"
- SRC_URI+=" verify-sig? ( https://github.com/openzfs/zfs/releases/download/zfs-${MY_PV}/zfs-${MY_PV}.tar.gz.asc )"
- S="${WORKDIR}/zfs-${PV%_rc?}"
- ZFS_KERNEL_COMPAT="5.16"
-
- # increments minor eg 5.14 -> 5.15, and still supports override.
- ZFS_KERNEL_DEP="${ZFS_KERNEL_COMPAT_OVERRIDE:-${ZFS_KERNEL_COMPAT}}"
- ZFS_KERNEL_DEP="${ZFS_KERNEL_DEP%%.*}.$(( ${ZFS_KERNEL_DEP##*.} + 1))"
-
- if [[ ${PV} != *_rc* ]]; then
- KEYWORDS="~amd64 ~arm64 ~ppc64 ~riscv"
- fi
-fi
-
-LICENSE="CDDL MIT debug? ( GPL-2+ )"
-SLOT="0/${PVR}"
-IUSE="custom-cflags debug +rootfs"
-
-RDEPEND="${DEPEND}
- !sys-kernel/spl
-"
-
-BDEPEND="
- dev-lang/perl
- virtual/awk
-"
-
-# we want dist-kernel block in BDEPEND because of portage resolver.
-# since linux-mod.eclass already sets version-unbounded dep, portage
-# will pull new versions. So we set it in BDEPEND which takes priority.
-# and we don't need in in git ebuild.
-if [[ ${PV} != "9999" ]] ; then
- BDEPEND+="
- verify-sig? ( sec-keys/openpgp-keys-openzfs )
- dist-kernel? ( <virtual/dist-kernel-${ZFS_KERNEL_DEP}:= )
- "
-fi
-
-# PDEPEND in this form is needed to trick portage suggest
-# enabling dist-kernel if only 1 package have it set
-PDEPEND="dist-kernel? ( ~sys-fs/zfs-${PV}[dist-kernel] )"
-
-RESTRICT="debug? ( strip ) test"
-
-DOCS=( AUTHORS COPYRIGHT META README.md )
-
-PATCHES=(
- "${FILESDIR}"/${PV}-werror.patch
-)
-
-pkg_pretend() {
- use rootfs || return 0
-
- if has_version virtual/dist-kernel && ! use dist-kernel; then
- ewarn "You have virtual/dist-kernel installed, but"
- ewarn "USE=\"dist-kernel\" is not enabled for ${CATEGORY}/${PN}"
- ewarn "It's recommended to globally enable dist-kernel USE flag"
- ewarn "to auto-trigger initrd rebuilds with kernel updates"
- fi
-}
-
-pkg_setup() {
- CONFIG_CHECK="
- !DEBUG_LOCK_ALLOC
- EFI_PARTITION
- MODULES
- !PAX_KERNEXEC_PLUGIN_METHOD_OR
- !TRIM_UNUSED_KSYMS
- ZLIB_DEFLATE
- ZLIB_INFLATE
- "
-
- use debug && CONFIG_CHECK="${CONFIG_CHECK}
- FRAME_POINTER
- DEBUG_INFO
- !DEBUG_INFO_REDUCED
- "
-
- use rootfs && \
- CONFIG_CHECK="${CONFIG_CHECK}
- BLK_DEV_INITRD
- DEVTMPFS
- "
-
- kernel_is -lt 5 && CONFIG_CHECK="${CONFIG_CHECK} IOSCHED_NOOP"
-
- if [[ ${PV} != "9999" ]]; then
- local kv_major_max kv_minor_max zcompat
- zcompat="${ZFS_KERNEL_COMPAT_OVERRIDE:-${ZFS_KERNEL_COMPAT}}"
- kv_major_max="${zcompat%%.*}"
- zcompat="${zcompat#*.}"
- kv_minor_max="${zcompat%%.*}"
- kernel_is -le "${kv_major_max}" "${kv_minor_max}" || die \
- "Linux ${kv_major_max}.${kv_minor_max} is the latest supported version"
-
- fi
-
- kernel_is -ge 3 10 || die "Linux 3.10 or newer required"
-
- linux-mod_pkg_setup
-}
-
-src_prepare() {
- default
-
- # Run unconditionally (bug #792627)
- eautoreconf
-
- if [[ ${PV} != "9999" ]]; then
- # Set module revision number
- sed -i "s/\(Release:\)\(.*\)1/\1\2${PR}-gentoo/" META || die "Could not set Gentoo release"
- fi
-}
-
-src_configure() {
- set_arch_to_kernel
-
- use custom-cflags || strip-flags
-
- filter-ldflags -Wl,*
-
- # Set CROSS_COMPILE in the environment.
- # This allows the user to override it via make.conf or via a local Makefile.
- # https://bugs.gentoo.org/811600
- export CROSS_COMPILE=${CROSS_COMPILE-${CHOST}-}
-
- local myconf=(
- HOSTCC="$(tc-getBUILD_CC)"
- --bindir="${EPREFIX}/bin"
- --sbindir="${EPREFIX}/sbin"
- --with-config=kernel
- --with-linux="${KV_DIR}"
- --with-linux-obj="${KV_OUT_DIR}"
- $(use_enable debug)
- )
-
- econf "${myconf[@]}"
-}
-
-src_compile() {
- set_arch_to_kernel
-
- myemakeargs=(
- HOSTCC="$(tc-getBUILD_CC)"
- V=1
- )
-
- emake "${myemakeargs[@]}"
-}
-
-src_install() {
- set_arch_to_kernel
-
- myemakeargs+=(
- DEPMOD=:
- # INSTALL_MOD_PATH ?= $(DESTDIR) in module/Makefile
- DESTDIR="${D}"
- )
-
- emake "${myemakeargs[@]}" install
-
- einstalldocs
-}
-
-pkg_postinst() {
- linux-mod_pkg_postinst
-
- if [[ -z ${ROOT} ]] && use dist-kernel; then
- set_arch_to_portage
- dist-kernel_reinstall_initramfs "${KV_DIR}" "${KV_FULL}"
- fi
-
- if use x86 || use arm; then
- ewarn "32-bit kernels will likely require increasing vmalloc to"
- ewarn "at least 256M and decreasing zfs_arc_max to some value less than that."
- fi
-
- if has_version sys-boot/grub; then
- ewarn "This version of OpenZFS includes support for new feature flags"
- ewarn "that are incompatible with previous versions. GRUB2 support for"
- ewarn "/boot with the new feature flags is not yet available."
- ewarn "Do *NOT* upgrade root pools to use the new feature flags."
- ewarn "Any new pools will be created with the new feature flags by default"
- ewarn "and will not be compatible with older versions of OpenZFS. To"
- ewarn "create a newpool that is backward compatible wih GRUB2, use "
- ewarn
- ewarn "zpool create -o compatibility=grub2 ..."
- ewarn
- ewarn "Refer to /usr/share/zfs/compatibility.d/grub2 for list of features."
- fi
-}
diff --git a/sys-fs/zfs-kmod/zfs-kmod-2.1.4.ebuild b/sys-fs/zfs-kmod/zfs-kmod-2.1.4-r1.ebuild
index 415a0f781f18..79e017a77935 100644
--- a/sys-fs/zfs-kmod/zfs-kmod-2.1.4.ebuild
+++ b/sys-fs/zfs-kmod/zfs-kmod-2.1.4-r1.ebuild
@@ -26,7 +26,7 @@ else
ZFS_KERNEL_DEP="${ZFS_KERNEL_DEP%%.*}.$(( ${ZFS_KERNEL_DEP##*.} + 1))"
if [[ ${PV} != *_rc* ]]; then
- KEYWORDS="~amd64 ~arm64 ~ppc64 ~riscv"
+ KEYWORDS="amd64 arm64 ppc64 ~riscv"
fi
fi
@@ -62,6 +62,10 @@ RESTRICT="debug? ( strip ) test"
DOCS=( AUTHORS COPYRIGHT META README.md )
+PATCHES=(
+ "${FILESDIR}"/${PV}-ZERO_RANGE.patch
+)
+
pkg_pretend() {
use rootfs || return 0