59 Commits

Author SHA1 Message Date
Thomas Lamprecht 66ef8d3dc8 bump version to 2.1.15-pve1
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2024-03-29 15:22:26 +01:00
Stoiko Ivanov 0471bf2222 d/zfsutils-linux.install: add zfs_prepare_disk and manpage
Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
(cherry picked from commit 3bda92bd20)
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2024-03-29 15:22:26 +01:00
Thomas Lamprecht 592bf54c1d update ZFS to 2.1.15
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2024-03-29 15:18:12 +01:00
Thomas Lamprecht d5320c35ef d/changelog: fixup release dist
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-12-01 14:37:07 +01:00
Thomas Lamprecht daea70c06f bump version to 2.1.14-pve1
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-12-01 13:47:21 +01:00
Thomas Lamprecht d2d19b30ac update ZFS to 2.1.14
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-12-01 13:46:48 +01:00
Thomas Lamprecht 453933b504 backport fix for AMX register breakage
vmexit's can cause the AMX registers to "misbehave" which can break
ZFS, even though ZFS doesn't use AMX at all.

This causes crashes and processes hanging forever in uninterruptible
sleep (the infamous D state) on Intel Xeon 4th gen HW, possible other
HW too, but we only got reports on Sapphire Rapids models.

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
Tested-by: Aaron Lauterer <a.lauterer@proxmox.com>
(cherry picked from commit 9e8946d4b9)
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-12-01 13:41:18 +01:00
Thomas Lamprecht 7c44e0fd4f buildsys: improve clean target
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
(cherry picked from commit 8c6520d1fc)
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-12-01 13:41:18 +01:00
Thomas Lamprecht 846641b44e bump version to 2.1.13-pve1
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
(cherry picked from commit aa26132525)
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-12-01 13:41:18 +01:00
Thomas Lamprecht 7c3580f1e2 add basic gitignore
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
(cherry picked from commit 13c7e925aa)
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-12-01 13:41:18 +01:00
Thomas Lamprecht 406e3116ab buildsys: improve DSC target
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
(cherry picked from commit a80c5e3597)
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-12-01 13:41:18 +01:00
Thomas Lamprecht 4e4e9f07b7 buildsys: align variable names with our commonly used ones
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
(cherry picked from commit 149fd91bb2)
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-12-01 13:41:18 +01:00
Stoiko Ivanov c40521f90e update zfs submodule to 2.1.13 and refresh patches
Sugested-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
(cherry picked from commit 362d3432be)
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-12-01 13:41:18 +01:00
Thomas Lamprecht 815c0cb231 bump version to 2.1.12-pve1
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
(cherry picked from commit f5ed5be89a)
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-12-01 13:41:18 +01:00
Stoiko Ivanov c636d46615 /lib/zfs-linux/trim: don't exit 1 if last pool isn't nvme-only (Closes: #1030316)
(cherry picked from debian-upstream[0]
commit 8ed69adac193f6463832f6ae34b5ded88b8014d8)

[0] https://salsa.debian.org/zfsonlinux-team/zfs
Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
(cherry picked from commit 5891aaec34)
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-12-01 13:41:18 +01:00
Stoiko Ivanov 9d8f7eac7e update zfs submodule to 2.1.12
patches still applied cleanly

Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
(cherry picked from commit 63e591d8a9)
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-12-01 13:41:18 +01:00
Thomas Lamprecht 3e7179aab5 bump version to 2.1.11-pve2
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
(cherry picked from commit d855afe7be)
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-12-01 13:41:18 +01:00
Thomas Lamprecht cf62ae92d0 buildsys: add sbuild convenience target
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
(cherry picked from commit 34d701d1ac)
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-12-01 13:41:18 +01:00
Thomas Lamprecht 1bc51c3067 buildsys: derive upload dist and arch automatically
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
(cherry picked from commit 40fe66e33e)
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-12-01 13:41:18 +01:00
Thomas Lamprecht ba79ebf386 d/copyright: update from debian upstream
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
(cherry picked from commit 1b7710c13c)
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-12-01 13:41:18 +01:00
Thomas Lamprecht a7a04bbd41 d/control: do not depend on obsolete lsb-base
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
(cherry picked from commit 2f5fca8a1a)
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-12-01 13:41:18 +01:00
Thomas Lamprecht dcf2989454 d/rules: drop --parallel flag, useless for dh-compat >= 10
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
(cherry picked from commit 8ba2c83746)
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-12-01 13:41:18 +01:00
Thomas Lamprecht 88588cfead buildsys: generate clean orig source tarball for DSC
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-05-20 20:37:16 +02:00
Thomas Lamprecht 1995e62236 makefile: convert to use simple parenthesis
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-05-20 20:27:07 +02:00
Thomas Lamprecht ab835eff0f buildsys: use actual DSC file as prerequisite
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-05-20 20:27:07 +02:00
Thomas Lamprecht b0c4d8ac0b bump version to 2.1.11-pve1
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-04-20 09:30:56 +02:00
Thomas Lamprecht f4e2c4ae29 update ZFS submodule to 2.1.11 and refresh patches
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-04-20 09:30:22 +02:00
Thomas Lamprecht 4584ec1155 cherry-pick e063ff177 ("linux 6.3 compat: add another bdev_io_acct case")
As among possibly other things, it addresses a patch that got
backported to kernel 6.2.8 too.

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-04-03 11:48:09 +02:00
Thomas Lamprecht 5ea8a38968 bump version to 2.1.9-pve1
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-01-28 15:03:25 +01:00
Stoiko Ivanov 7a95e010b1 update zfs submodule to 2.1.9 and refresh patches
mostly drop patches we already applied intermittently

Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
2023-01-28 15:02:42 +01:00
Thomas Lamprecht f799169849 buildsys: fix missing producing target for dbgsym packages
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-01-10 11:51:37 +01:00
Thomas Lamprecht 3efcc79c39 bump version to 2.1.7-pve3
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-01-07 13:22:02 +01:00
Thomas Lamprecht 85a3ff856d adapt to 6.1 changes for open syscall with TMPFILE option
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-01-07 13:20:28 +01:00
Thomas Lamprecht dca6abbf07 backport pipe-resize and xattr fix
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-01-07 13:19:51 +01:00
Thomas Lamprecht 5a2ad46755 bump version to 2.1.7-pve2
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-01-02 17:07:23 +01:00
Stoiko Ivanov d0e8c24e02 fix #4440: cherry-pick patch for mountpoint=legacy on /
As reported having set 'mountpoint=legacy' on the root dataset (for a
default install this would be 'rpool/ROOT/pve-1') for mounting through
e.g. /etc/fstab breaks booting in initramfs

The cherry-picked patch is already applied to zfs-2.1.8-staging
upstream so will be included in the next zfs point release.

reproduced the issue on a VM with ZFS on root by:
* booting into a PVE 7.3 iso (to have zfs and an inactive
  rpool/ROOT/pve-1)
* `zpool import -ocachefile=none -N -f rpool
* `zfs set mountpoint=legacy rpool/ROOT/pve-1`
* `mount -t zfs rpool/ROOT/pve-1 /mnt
* `echo "rpool/ROOT/pve-1 / zfs defaults 0 0" >> /mnt/etc/fstab`
* `zpool export rpool`
* reboot - the boot breaks with zfs-initramfs 2.1.7-pve1 but works
  with this patch applied

Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
2023-01-02 17:03:49 +01:00
Thomas Lamprecht 796e3f981f bump version to 2.1.7-pve1
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2022-12-06 16:41:34 +01:00
Stoiko Ivanov b7feed7429 d/control: add libudev-dev and libaio-dev to build-depends
noticed by lintian on my system (after a new install)

Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
2022-12-06 16:39:35 +01:00
Stoiko Ivanov dceb3ed09f trim: clean up, fix
This does:
  * fix get_transp() on non-bash
  * re-indent of the code from #990745
  * fix terminology: it's pool
  * remove -e: I originally actually fixed -e,
    but it turns out literally every bit that could fail
    is already either || : or wasn't by accident (like in the #990745 code)
  * simplify get_transp() and explain why we do it instead of matching nvme path
  * use remove -L from the data we feed to lsblk, zpool w/o -L is measurably faster
  * pipe the devices into while read to match rest of code
  * use read -r in main loop
  * match the userprop with case/esac instead of if tree
  * shellcheck-clean the script

(cherry picked from debian-upstream[0]
commit 769a09407c6b65db981804a05a81ea63d004ebeb)

[0] https://salsa.debian.org/zfsonlinux-team/zfs
Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
2022-12-06 16:39:35 +01:00
Stoiko Ivanov 8e0b77bbc4 update zfs submodule to 2.1.7 and refresh patches
Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
2022-12-06 16:39:35 +01:00
Stoiko Ivanov 0b16d88d9c install zfs-load-key.service
following upstream shipping it as a symlnk to /dev/null (to mask it)

follows commit b18419d7068b7ebcaa6dfbee85263177feffa711 from
debian-upstream:
https://salsa.debian.org/zfsonlinux-team/zfs/

Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
2022-10-18 08:40:30 +02:00
Stoiko Ivanov 81fe4f0591 cherry-pick a few patches from zfs-2.1.7-staging
While checking the current state of 2.1.6 we noticed that there were
some changes in debian-upstream [0] resulting from a bug-report in
zfs-upstream [1].

Our packages should be unaffected (they do not ship the
init-scripts in the first place).
Since the issue was fixed by zfs-upstream already on the
zfs-2.1.7-staging branch we should include it as well as it might save
users, who somehow got debian-upstream's zfs-packages installed on PVE
some trouble.

The other 2 changes seem small and isolated enough so including them
as well.

[0] https://salsa.debian.org/zfsonlinux-team/zfs/-/commits/master
[1] https://github.com/openzfs/zfs/issues/14010

Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
2022-10-18 08:40:30 +02:00
Thomas Lamprecht b8330d8fb8 d/control: recommend bsd-mailx | mailutils for ZED
so that it actually can send out mail by default

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2022-10-17 13:44:58 +02:00
Thomas Lamprecht 186fde725e bump version to 2.1.6-pve1
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2022-10-04 16:09:22 +02:00
Stoiko Ivanov 06c33ddc17 debian/zfs-initramfs.lintian-overrides add overrides file
Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
2022-10-04 16:06:34 +02:00
Stoiko Ivanov 1eee727ce8 debian/lintian-overrides: future-proof
Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
2022-10-04 16:06:34 +02:00
Stoiko Ivanov 1663c08ec4 Symlink zpool_influxdb to /bin. (Closes: #1001446)
(cherry picked from debian-upstream[0]
commit 4ce9e9b7a221ba1a84a921a34db582a2ef68b950)

[0] https://salsa.debian.org/zfsonlinux-team/zfs
Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
2022-10-04 16:06:34 +02:00
Stoiko Ivanov a7bd81d424 Symlink zfs, zpool to /bin/ for non-root usage. (Closes: #979437)
(cherry picked from debian-upstream[0]
commit 9fe812af0c9fb0382b05b300244f120179e201e7)

[0] https://salsa.debian.org/zfsonlinux-team/zfs
Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
2022-10-04 16:06:34 +02:00
Stoiko Ivanov 68b54bb663 trim: determine if a device uses nvme transport with lsblk (Closes: #990745)
Thanks to Miao Wang for get_transp() function

(cherry picked from debian-upstream[0]
commit 1f5433b15e4f7c823983bb90390c4b023f3d1948)

[0] https://salsa.debian.org/zfsonlinux-team/zfs
Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
2022-10-04 16:06:34 +02:00
Stoiko Ivanov 8f586181c6 update zfs submodule to 2.1.6 and refresh patches
Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
2022-10-04 16:06:34 +02:00
Thomas Lamprecht 3f3541cad0 bump version to 2.1.5-pve1
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2022-06-28 16:13:51 +02:00
Stoiko Ivanov 68469c1a83 d/control: add new zfs-dracut package
following debian upstream (which pulled it in from Ubuntu in
44915cf387d45a123b11a8c24d3f30a8fdbcc532)

Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
2022-06-28 16:12:01 +02:00
Stoiko Ivanov 41ebc8de33 Build with libcurl for new keylocation=https://
following commit da40a1b007d2a99bac95bd67ec6dd7b8e217c0cf from
debian-upstream.

However since some of our rust-packages seem to depend on
libcurl4-gnutls-dev (via librust-curl-sys-dev) we add a
option for the dependency - I would assume that both should work
equally well (the callers are in upstream/lib/libzfs/libzfs_crypto.c)

Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
2022-06-28 16:12:01 +02:00
Stoiko Ivanov b530052969 update submodule and patches to ZFS
Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
2022-06-28 16:12:01 +02:00
Thomas Lamprecht 75a1232bf6 bump version to 2.1.4-pve1
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2022-03-29 10:30:57 +02:00
Thomas Lamprecht fad6240a58 update zfs submodule to 2.1.4
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2022-03-24 09:28:15 +01:00
Thomas Lamprecht 9a75bb8d65 bump version to 2.1.3-pve1
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2022-03-11 16:36:30 +01:00
Stoiko Ivanov d801a0c5f6 add zfs-scrub timers+services to zfsutils-linux
Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
2022-03-11 16:34:58 +01:00
Stoiko Ivanov ca1ed9a9bf update submodule and patches to ZFS 2.1.3
Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
2022-03-11 16:34:58 +01:00
28 changed files with 390 additions and 423 deletions
+7
View File
@@ -0,0 +1,7 @@
/*.build
/*.buildinfo
/*.changes
/*.deb
/*.dsc
/*.tar*
/zfs-utils-*.*/
+62 -51
View File
@@ -1,82 +1,93 @@
include /usr/share/dpkg/default.mk
# source form https://github.com/zfsonlinux/ # source form https://github.com/zfsonlinux/
ZFSPKG=debian PACKAGE = zfs-linux
ZFSVER != dpkg-parsechangelog -l ${ZFSPKG}/changelog -Sversion | cut -d- -f1
ZFSPKGVER != dpkg-parsechangelog -l ${ZFSPKG}/changelog -Sversion
ZFSDIR=zfs-linux_${ZFSVER}
ZFSSRC=upstream
ZFS_DEB1= libnvpair3linux_${ZFSPKGVER}_amd64.deb SRCDIR = upstream
BUILDDIR ?= $(PACKAGE)-$(DEB_VERSION_UPSTREAM)
ORIG_SRC_TAR = $(PACKAGE)_$(DEB_VERSION_UPSTREAM).orig.tar.gz
ZFS_DEB1= libnvpair3linux_$(DEB_VERSION)_amd64.deb
ZFS_DEB_BINARY = \ ZFS_DEB_BINARY = \
libpam-zfs_${ZFSPKGVER}_amd64.deb \ libpam-zfs_$(DEB_VERSION)_amd64.deb \
libuutil3linux_${ZFSPKGVER}_amd64.deb \ libuutil3linux_$(DEB_VERSION)_amd64.deb \
libzfs4linux_${ZFSPKGVER}_amd64.deb \ libzfs4linux_$(DEB_VERSION)_amd64.deb \
libzfsbootenv1linux_${ZFSPKGVER}_amd64.deb \ libzfsbootenv1linux_$(DEB_VERSION)_amd64.deb \
libzpool5linux_${ZFSPKGVER}_amd64.deb \ libzpool5linux_$(DEB_VERSION)_amd64.deb \
zfs-test_${ZFSPKGVER}_amd64.deb \ zfs-test_$(DEB_VERSION)_amd64.deb \
zfsutils-linux_${ZFSPKGVER}_amd64.deb \ zfsutils-linux_$(DEB_VERSION)_amd64.deb \
zfs-zed_${ZFSPKGVER}_amd64.deb zfs-zed_$(DEB_VERSION)_amd64.deb
ZFS_DBG_DEBS = $(patsubst %_${ZFSPKGVER}_amd64.deb, %-dbgsym_${ZFSPKGVER}_amd64.deb, ${ZFS_DEB1} ${ZFS_DEB_BINARY}) ZFS_DBG_DEBS = $(patsubst %_$(DEB_VERSION)_amd64.deb, %-dbgsym_$(DEB_VERSION)_amd64.deb, $(ZFS_DEB1) $(ZFS_DEB_BINARY))
ZFS_DEB2= ${ZFS_DEB_BINARY} \ ZFS_DEB2= $(ZFS_DEB_BINARY) \
libzfslinux-dev_${ZFSPKGVER}_amd64.deb \ libzfslinux-dev_$(DEB_VERSION)_amd64.deb \
python3-pyzfs_${ZFSPKGVER}_amd64.deb \ python3-pyzfs_$(DEB_VERSION)_amd64.deb \
pyzfs-doc_${ZFSPKGVER}_all.deb \ pyzfs-doc_$(DEB_VERSION)_all.deb \
spl_${ZFSPKGVER}_all.deb \ spl_$(DEB_VERSION)_all.deb \
zfs-initramfs_${ZFSPKGVER}_all.deb zfs-initramfs_$(DEB_VERSION)_all.deb
DEBS= ${ZFS_DEB1} ${ZFS_DEB2} ${ZFS_DBG_DEBS} DEBS= $(ZFS_DEB1) $(ZFS_DEB2) $(ZFS_DBG_DEBS)
ZFS_DSC = zfs-linux_${ZFSPKGVER}.dsc ZFS_DSC = zfs-linux_$(DEB_VERSION).dsc
all: deb all: deb
.PHONY: deb
deb: ${DEBS} .PHONY: deb dsc
.PHONY: dsc deb: $(DEBS)
dsc: ${ZFS_DSC}
dsc:
rm -rf *.dsc $(BUILDDIR)
$(MAKE) $(ZFS_DSC)
lintian $(ZFS_DSC)
# called from pve-kernel's Makefile to get patched sources # called from pve-kernel's Makefile to get patched sources
.PHONY: kernel .PHONY: kernel
kernel: dsc kernel: $(ZFS_DSC)
dpkg-source -x ${ZFS_DSC} ../pkg-zfs dpkg-source -x $(ZFS_DSC) ../pkg-zfs
${MAKE} -C ../pkg-zfs -f debian/rules adapt_meta_file $(MAKE) -C ../pkg-zfs -f debian/rules adapt_meta_file
.PHONY: dinstall .PHONY: dinstall
dinstall: ${DEBS} dinstall: $(DEBS)
dpkg -i ${DEBS} dpkg -i $(DEBS)
.PHONY: submodule .PHONY: submodule
submodule: submodule:
test -f "${ZFSSRC}/README.md" || git submodule update --init test -f "$(SRCDIR)/README.md" || git submodule update --init
${ZFSSRC}/README.md: submodule
$(SRCDIR)/README.md: submodule
.PHONY: zfs .PHONY: zfs
zfs: ${DEBS} zfs: $(DEBS)
${ZFS_DEB2}: ${ZFS_DEB1} $(ZFS_DEB2) $(ZFS_DBG_DEBS): $(ZFS_DEB1)
${ZFS_DEB1}: ${ZFSDIR} $(ZFS_DEB1): $(BUILDDIR)
cd ${ZFSDIR}; dpkg-buildpackage -b -uc -us cd $(BUILDDIR); dpkg-buildpackage -b -uc -us
lintian ${DEBS} lintian $(DEBS)
${ZFS_DSC}: ${ZFSDIR} $(ORIG_SRC_TAR): $(BUILDDIR)
tar czf zfs-linux_${ZFSVER}.orig.tar.gz ${ZFSDIR} tar czf $(ORIG_SRC_TAR) --exclude="$(BUILDDIR)/debian" $(BUILDDIR)
cd ${ZFSDIR}; dpkg-buildpackage -S -uc -us -d
lintian $@
${ZFSDIR}: ${ZFSSRC}/README.md ${ZFSSRC} ${ZFSPKG} $(ZFS_DSC): $(BUILDDIR) $(ORIG_SRC_TAR)
rm -rf ${ZFSDIR} ${ZFSDIR}.tmp cd $(BUILDDIR); dpkg-buildpackage -S -uc -us -d
cp -a ${ZFSSRC} ${ZFSDIR}.tmp
cp -a ${ZFSPKG} ${ZFSDIR}.tmp/debian
mv ${ZFSDIR}.tmp ${ZFSDIR}
sbuild: $(ZFS_DSC)
sbuild $(ZFS_DSC)
$(BUILDDIR): $(SRCDIR)/README.md $(SRCDIR) debian
rm -rf $@ $@.tmp
cp -a $(SRCDIR) $@.tmp
cp -a debian $@.tmp/debian
mv $@.tmp $@
.PHONY: clean .PHONY: clean
clean: clean:
rm -rf *~ *.deb *.changes *.buildinfo *.dsc *.orig.tar.* *.debian.tar.* ${ZFSDIR} rm -rf $(PACKAGE)-[0-9]*/
rm -f *~ *.deb *.changes *.buildinfo *.build *.dsc *.orig.tar.* *.debian.tar.*
.PHONY: distclean .PHONY: distclean
distclean: clean distclean: clean
.PHONY: upload .PHONY: upload
upload: ${DEBS} upload: UPLOAD_DIST ?= $(DEB_DISTRIBUTION)
tar -cf - ${DEBS} | ssh repoman@repo.proxmox.com -- upload --product pve,pmg,pbs --dist bullseye --arch amd64 upload: $(DEBS)
tar -cf - $(DEBS) | ssh repoman@repo.proxmox.com -- upload --product pve,pmg,pbs --dist $(UPLOAD_DIST) --arch $(DEB_HOST_ARCH)
+98
View File
@@ -1,3 +1,101 @@
zfs-linux (2.1.15-pve1) bullseye; urgency=medium
* update ZFS to 2.1.15
-- Proxmox Support Team <support@proxmox.com> Fri, 29 Mar 2024 15:18:31 +0100
zfs-linux (2.1.14-pve1) bullseye; urgency=medium
* update ZFS to 2.1.14
-- Proxmox Support Team <support@proxmox.com> Fri, 01 Dec 2023 13:47:16 +0100
zfs-linux (2.1.13-pve1) bookworm; urgency=medium
* update ZFS to 2.1.13
-- Proxmox Support Team <support@proxmox.com> Thu, 28 Sep 2023 12:22:28 +0200
zfs-linux (2.1.12-pve1) bookworm; urgency=medium
* update ZFS to 2.1.12
* zfs trim: avoid exit-failure if last pool isn't nvme-only
-- Proxmox Support Team <support@proxmox.com> Tue, 13 Jun 2023 15:25:16 +0200
zfs-linux (2.1.11-pve2) bookworm; urgency=medium
* re-build for Debian 12 Bookworm based releases
-- Proxmox Support Team <support@proxmox.com> Sat, 20 May 2023 19:32:04 +0200
zfs-linux (2.1.11-pve1) bullseye; urgency=medium
* update ZFS to 2.1.11
-- Proxmox Support Team <support@proxmox.com> Thu, 20 Apr 2023 09:30:53 +0200
zfs-linux (2.1.9-pve1) bullseye; urgency=medium
* update ZFS to 2.1.9
-- Proxmox Support Team <support@proxmox.com> Sat, 28 Jan 2023 15:03:22 +0100
zfs-linux (2.1.7-pve3) bullseye; urgency=medium
* backport a fix for as potentially hanging pipe when resizing it on recv
* backport a fix for setting extended attributes (xattr)
* adapt to 6.1 changes for open syscall with TMPFILE option
-- Proxmox Support Team <support@proxmox.com> Sat, 07 Jan 2023 13:21:57 +0100
zfs-linux (2.1.7-pve2) bullseye; urgency=medium
* backport fix for initramfs script when detecting rootfs legacy mountpoints
-- Proxmox Support Team <support@proxmox.com> Mon, 02 Jan 2023 17:07:18 +0100
zfs-linux (2.1.7-pve1) bullseye; urgency=medium
* update ZFS to 2.1.7
-- Proxmox Support Team <support@proxmox.com> Tue, 06 Dec 2022 16:41:31 +0100
zfs-linux (2.1.6-pve1) bullseye; urgency=medium
* update ZFS to 2.1.6
* symlink zpool_influxdb to /bin
* symlink zfs, zpool to /bin/ for non-root usage
-- Proxmox Support Team <support@proxmox.com> Tue, 04 Oct 2022 16:09:17 +0200
zfs-linux (2.1.5-pve1) bullseye; urgency=medium
* update ZFS to 2.1.5
* Build with libcurl for new keylocation=https://
* d/control: add new zfs-dracut package
-- Proxmox Support Team <support@proxmox.com> Tue, 28 Jun 2022 16:13:24 +0200
zfs-linux (2.1.4-pve1) bullseye; urgency=medium
* update ZFS to 2.1.4
-- Proxmox Support Team <support@proxmox.com> Thu, 24 Mar 2022 09:28:50 +0100
zfs-linux (2.1.3-pve1) bullseye; urgency=medium
* update ZFS to 2.1.3
-- Proxmox Support Team <support@proxmox.com> Fri, 11 Mar 2022 16:36:22 +0100
zfs-linux (2.1.2-pve1) bullseye; urgency=medium zfs-linux (2.1.2-pve1) bullseye; urgency=medium
* update ZFS to 2.1.2 * update ZFS to 2.1.2
+22 -2
View File
@@ -5,11 +5,14 @@ Maintainer: Proxmox Support Team <support@proxmox.com>
Build-Depends: abigail-tools, Build-Depends: abigail-tools,
debhelper-compat (= 12), debhelper-compat (= 12),
dh-python, dh-python,
libaio-dev,
libblkid-dev, libblkid-dev,
libcurl4-openssl-dev | libcurl4-gnutls-dev,
libelf-dev, libelf-dev,
libpam0g-dev, libpam0g-dev,
libssl-dev | libssl1.0-dev, libssl-dev | libssl1.0-dev,
libtool, libtool,
libudev-dev,
lsb-release, lsb-release,
python3-cffi, python3-cffi,
python3-setuptools, python3-setuptools,
@@ -84,9 +87,12 @@ Package: libzfs4linux
Section: contrib/libs Section: contrib/libs
Architecture: linux-any Architecture: linux-any
Depends: ${misc:Depends}, ${shlibs:Depends} Depends: ${misc:Depends}, ${shlibs:Depends}
# The libcurl4 is loaded through dlopen("libcurl.so.4").
# https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=988521
Recommends: libcurl4
Breaks: libzfs2, libzfs2linux, libzfs3linux, libzfs4 Breaks: libzfs2, libzfs2linux, libzfs3linux, libzfs4
Replaces: libzfs2, libzfs2linux, libzfs3linux, libzfs4 Replaces: libzfs2, libzfs2linux, libzfs3linux, libzfs4
Description: OpenZFS filesystem library for Linux Description: OpenZFS filesystem library for Linux - general support
OpenZFS is a storage platform that encompasses the functionality of OpenZFS is a storage platform that encompasses the functionality of
traditional filesystems and volume managers. It supports data checksums, traditional filesystems and volume managers. It supports data checksums,
compression, encryption, snapshots, and more. compression, encryption, snapshots, and more.
@@ -180,11 +186,24 @@ Description: OpenZFS root filesystem capabilities for Linux - initramfs
This package adds OpenZFS to the system initramfs with a hook This package adds OpenZFS to the system initramfs with a hook
for the initramfs-tools infrastructure. for the initramfs-tools infrastructure.
Package: zfs-dracut
Architecture: all
Depends: dracut,
zfsutils-linux (>= ${source:Version}),
${misc:Depends}
Description: OpenZFS root filesystem capabilities for Linux - dracut
OpenZFS is a storage platform that encompasses the functionality of
traditional filesystems and volume managers. It supports data checksums,
compression, encryption, snapshots, and more.
.
This package adds OpenZFS to the system initramfs with a hook
for the dracut infrastructure.
Package: zfsutils-linux Package: zfsutils-linux
Section: contrib/admin Section: contrib/admin
Architecture: linux-any Architecture: linux-any
Depends: python3, ${misc:Depends}, ${python3:Depends}, ${shlibs:Depends} Depends: python3, ${misc:Depends}, ${python3:Depends}, ${shlibs:Depends}
Recommends: lsb-base, zfs-zed Recommends: zfs-zed
Suggests: nfs-kernel-server, Suggests: nfs-kernel-server,
samba-common-bin (>= 3.0.23), samba-common-bin (>= 3.0.23),
zfs-initramfs zfs-initramfs
@@ -204,6 +223,7 @@ Architecture: linux-any
Depends: zfsutils-linux (>= ${binary:Version}), Depends: zfsutils-linux (>= ${binary:Version}),
${misc:Depends}, ${misc:Depends},
${shlibs:Depends} ${shlibs:Depends}
Recommends: bsd-mailx | mailutils
Description: OpenZFS Event Daemon Description: OpenZFS Event Daemon
OpenZFS is a storage platform that encompasses the functionality of OpenZFS is a storage platform that encompasses the functionality of
traditional filesystems and volume managers. It supports data checksums, traditional filesystems and volume managers. It supports data checksums,
+20 -23
View File
@@ -132,9 +132,9 @@ Copyright:
2017, Intel Corporation. 2017, Intel Corporation.
License: CDDL-1.0 License: CDDL-1.0
Files: cmd/zstreamdump/* Files: cmd/zstream/*
Copyright: Copyright:
2013, Delphix. 2013, 2015 Delphix.
2012, Martin Matuska <martin@matuska.org> 2012, Martin Matuska <martin@matuska.org>
2010, Sun Microsystems, Inc. 2010, Sun Microsystems, Inc.
License: CDDL-1.0 License: CDDL-1.0
@@ -201,7 +201,6 @@ Copyright:
2011-2013, Darik Horn <dajhorn@vanadac.com> 2011-2013, Darik Horn <dajhorn@vanadac.com>
2018-2019, Mo Zhou <cdluminate@gmail.com> 2018-2019, Mo Zhou <cdluminate@gmail.com>
2018-2020, Mo Zhou <lumin@debian.org> 2018-2020, Mo Zhou <lumin@debian.org>
2015-2021 Proxmox Server Solutions GmbH <support@proxmox.com>
License: GPL-2+ License: GPL-2+
Files: debian/po/* Files: debian/po/*
@@ -399,12 +398,7 @@ Copyright: 2009, Oracle and/or its affiliates.
2009, Michael Gebetsroither <michael.geb@gmx.at> 2009, Michael Gebetsroither <michael.geb@gmx.at>
License: CDDL-1.0 License: CDDL-1.0
Files: man/man5/zfs-events.5 Files: man/man7/zpool-features.7
man/man5/zfs-module-parameters.5
Copyright: 2013, Turbo Fredriksson <turbo@bayour.com>
License: CDDL-1.0
Files: man/man5/zpool-features.5
Copyright: Copyright:
2013, Delphix 2013, Delphix
2013, Saso Kiselkov 2013, Saso Kiselkov
@@ -436,7 +430,7 @@ Copyright: 2011-2014, Delphix.
2007, 2009, 2010, Sun Microsystems, Inc. 2007, 2009, 2010, Sun Microsystems, Inc.
License: CDDL-1.0 License: CDDL-1.0
Files: module/lua Files: module/lua/*
Copyright: 1994-2015 Lua.org, PUC-Rio. Copyright: 1994-2015 Lua.org, PUC-Rio.
License: Expat License: Expat
@@ -483,7 +477,7 @@ Copyright: 2013, Saso Kiselkov.
2005, 2010, Oracle and/or its affiliates. 2005, 2010, Oracle and/or its affiliates.
License: CDDL-1.0 License: CDDL-1.0
Files: module/zcommon/zfs_uio.c Files: module/os/linux/zfs/zfs_uio.c
Copyright: 2007, 2009, 2010, Sun Microsystems, Inc. Copyright: 2007, 2009, 2010, Sun Microsystems, Inc.
1983-1989, AT&T 1983-1989, AT&T
1982, 1986, 1988, The Regents of the University of California 1982, 1986, 1988, The Regents of the University of California
@@ -697,13 +691,14 @@ Copyright: 2011, 2014, Nexenta Systems, Inc.
2005, 2010, Oracle and/or its affiliates. 2005, 2010, Oracle and/or its affiliates.
License: CDDL-1.0 License: CDDL-1.0
Files: module/zfs/vdev_disk.c Files: module/os/linux/zfs/vdev_disk.c
Copyright: 2012, 2014, Delphix. Copyright: 2012, 2014, Delphix.
2008-2010, Lawrence Livermore National Security, LLC 2008-2010, Lawrence Livermore National Security, LLC
License: CDDL-1.0 License: CDDL-1.0
Files: module/zfs/zfs_ctldir.c Files: module/os/freebsd/zfs/zfs_ctldir.c
Copyright: 2013, Delphix. module/os/linux/zfs/zfs_ctldir.c
Copyright: 2013, 2015 Delphix.
2011, Lawrence Livermore National Security, LLC 2011, Lawrence Livermore National Security, LLC
2005, 2010, Oracle and/or its affiliates. 2005, 2010, Oracle and/or its affiliates.
License: CDDL-1.0 License: CDDL-1.0
@@ -726,7 +721,8 @@ Copyright: 2013, Delphix.
2005, 2010, Oracle and/or its affiliates. 2005, 2010, Oracle and/or its affiliates.
License: CDDL-1.0 License: CDDL-1.0
Files: module/zfs/zfs_vfsops.c Files: module/os/freebsd/zfs/zfs_vfsops.c
module/os/linux/zfs/zfs_vfsops.c
module/zfs/zil.c module/zfs/zil.c
Copyright: 2011-2014, Delphix. Copyright: 2011-2014, Delphix.
2010, Robert Milkowski 2010, Robert Milkowski
@@ -741,8 +737,9 @@ Copyright: 2015, Chunwei Chen.
2005, 2010, Oracle and/or its affiliates. 2005, 2010, Oracle and/or its affiliates.
License: CDDL-1.0 License: CDDL-1.0
Files: module/zfs/zfs_znode.c Files: module/os/freebsd/zfs/zfs_znode.c
Copyright: 2013, Delphix. module/os/linux/zfs/zfs_znode.c
Copyright: 2013, 2015 Delphix.
2007, Jeremy Teo 2007, Jeremy Teo
2005, 2010, Oracle and/or its affiliates. 2005, 2010, Oracle and/or its affiliates.
License: CDDL-1.0 License: CDDL-1.0
@@ -753,20 +750,20 @@ Copyright: 2013, Saso Kiselkov.
2009, Sun Microsystems, Inc. 2009, Sun Microsystems, Inc.
License: CDDL-1.0 License: CDDL-1.0
Files: module/zfs/zpl_ctldir.c Files: module/os/linux/zfs/zpl_ctldir.c
module/zfs/zpl_super.c module/os/linux/zfs/zpl_super.c
module/zfs/zpl_xattr.c module/os/linux/zfs/zpl_xattr.c
module/zfs/zvol.c module/zfs/zvol.c
Copyright: 2008-2011, Lawrence Livermore National Security, LLC Copyright: 2008-2011, Lawrence Livermore National Security, LLC
License: CDDL-1.0 License: CDDL-1.0
Files: module/zfs/zpl_export.c Files: module/os/linux/zfs/zpl_export.c
Copyright: 2012, Cyril Plisko. Copyright: 2012, Cyril Plisko.
2011, Gunnar Beutner 2011, Gunnar Beutner
License: CDDL-1.0 License: CDDL-1.0
Files: module/zfs/zpl_file.c Files: module/os/linux/zfs/zpl_file.c
module/zfs/zpl_inode.c module/os/linux/zfs/zpl_inode.c
Copyright: 2015, Chunwei Chen. Copyright: 2015, Chunwei Chen.
2011, Lawrence Livermore National Security, LLC 2011, Lawrence Livermore National Security, LLC
License: CDDL-1.0 License: CDDL-1.0
+1 -1
View File
@@ -1,2 +1,2 @@
package-name-doesnt-match-sonames package-name-doesnt-match-sonames
extra-license-file usr/share/doc/libzfsbootenv1linux/LICENSE.gz extra-license-file *usr/share/doc/libzfsbootenv1linux/LICENSE.gz*
@@ -10,7 +10,7 @@ Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
1 file changed, 29 insertions(+), 5 deletions(-) 1 file changed, 29 insertions(+), 5 deletions(-)
diff --git a/config/zfs-meta.m4 b/config/zfs-meta.m4 diff --git a/config/zfs-meta.m4 b/config/zfs-meta.m4
index b3c1befaa..660d8ccb9 100644 index 20064a0fb..4d5f545ad 100644
--- a/config/zfs-meta.m4 --- a/config/zfs-meta.m4
+++ b/config/zfs-meta.m4 +++ b/config/zfs-meta.m4
@@ -1,9 +1,10 @@ @@ -1,9 +1,10 @@
@@ -67,4 +67,4 @@ index b3c1befaa..660d8ccb9 100644
+ elif test ! -f ".nogitrelease" && git rev-parse --git-dir > /dev/null 2>&1; then + elif test ! -f ".nogitrelease" && git rev-parse --git-dir > /dev/null 2>&1; then
_match="${ZFS_META_NAME}-${ZFS_META_VERSION}" _match="${ZFS_META_NAME}-${ZFS_META_VERSION}"
_alias=$(git describe --match=${_match} 2>/dev/null) _alias=$(git describe --match=${_match} 2>/dev/null)
_release=$(echo ${_alias}|cut -f3- -d'-'|sed 's/-/_/g') _release=$(echo ${_alias}|sed "s/${ZFS_META_NAME}//"|cut -f3- -d'-'|tr - _)
@@ -13,7 +13,7 @@ Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
1 file changed, 1 insertion(+), 1 deletion(-) 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/etc/systemd/system/zfs-zed.service.in b/etc/systemd/system/zfs-zed.service.in diff --git a/etc/systemd/system/zfs-zed.service.in b/etc/systemd/system/zfs-zed.service.in
index 008075138..570e27707 100644 index be80025a4..20ce8e632 100644
--- a/etc/systemd/system/zfs-zed.service.in --- a/etc/systemd/system/zfs-zed.service.in
+++ b/etc/systemd/system/zfs-zed.service.in +++ b/etc/systemd/system/zfs-zed.service.in
@@ -4,7 +4,7 @@ Documentation=man:zed(8) @@ -4,7 +4,7 @@ Documentation=man:zed(8)
@@ -22,6 +22,6 @@ index 008075138..570e27707 100644
[Service] [Service]
-ExecStart=@sbindir@/zed -F -ExecStart=@sbindir@/zed -F
+ExecStart=/usr/sbin/zed -F +ExecStart=/usr/sbin/zed -F
Restart=on-abort Restart=always
[Install] [Install]
@@ -14,7 +14,7 @@ Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
1 file changed, 1 insertion(+), 1 deletion(-) 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/etc/systemd/system/zfs-import-scan.service.in b/etc/systemd/system/zfs-import-scan.service.in diff --git a/etc/systemd/system/zfs-import-scan.service.in b/etc/systemd/system/zfs-import-scan.service.in
index d3c083f7e..b1c8c7b9d 100644 index 598ef501b..e4f3a70c1 100644
--- a/etc/systemd/system/zfs-import-scan.service.in --- a/etc/systemd/system/zfs-import-scan.service.in
+++ b/etc/systemd/system/zfs-import-scan.service.in +++ b/etc/systemd/system/zfs-import-scan.service.in
@@ -13,7 +13,7 @@ ConditionPathIsDirectory=/sys/module/zfs @@ -13,7 +13,7 @@ ConditionPathIsDirectory=/sys/module/zfs
+4 -13
View File
@@ -9,23 +9,14 @@ behavior of mdadm.
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com> Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
--- ---
cmd/zed/zed.d/zed.rc | 4 ++-- cmd/zed/zed.d/zed.rc | 2 +-
1 file changed, 2 insertions(+), 2 deletions(-) 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/cmd/zed/zed.d/zed.rc b/cmd/zed/zed.d/zed.rc diff --git a/cmd/zed/zed.d/zed.rc b/cmd/zed/zed.d/zed.rc
index 1c278b2ef..41c075c09 100644 index 1dfd43454..0180dd827 100644
--- a/cmd/zed/zed.d/zed.rc --- a/cmd/zed/zed.d/zed.rc
+++ b/cmd/zed/zed.d/zed.rc +++ b/cmd/zed/zed.d/zed.rc
@@ -15,7 +15,7 @@ @@ -42,7 +42,7 @@ ZED_EMAIL_ADDR="root"
# Email will only be sent if ZED_EMAIL_ADDR is defined.
# Disabled by default; uncomment to enable.
#
-#ZED_EMAIL_ADDR="root"
+ZED_EMAIL_ADDR="root"
##
# Name or path of executable responsible for sending notifications via email;
@@ -41,7 +41,7 @@
## ##
# Minimum number of seconds between notifications for a similar event. # Minimum number of seconds between notifications for a similar event.
# #
+3 -2
View File
@@ -11,15 +11,16 @@ Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
Description: track default symlinks, instead of symlinking Description: track default symlinks, instead of symlinking
Forwarded: no need Forwarded: no need
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
--- ---
cmd/zed/zed.d/Makefile.am | 2 +- cmd/zed/zed.d/Makefile.am | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-) 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/cmd/zed/zed.d/Makefile.am b/cmd/zed/zed.d/Makefile.am diff --git a/cmd/zed/zed.d/Makefile.am b/cmd/zed/zed.d/Makefile.am
index 2c8173b3e..ad39292e4 100644 index 1905a9207..6dc06252a 100644
--- a/cmd/zed/zed.d/Makefile.am --- a/cmd/zed/zed.d/Makefile.am
+++ b/cmd/zed/zed.d/Makefile.am +++ b/cmd/zed/zed.d/Makefile.am
@@ -49,7 +49,7 @@ install-data-hook: @@ -51,7 +51,7 @@ install-data-hook:
for f in $(zedconfdefaults); do \ for f in $(zedconfdefaults); do \
test -f "$(DESTDIR)$(zedconfdir)/$${f}" -o \ test -f "$(DESTDIR)$(zedconfdir)/$${f}" -o \
-L "$(DESTDIR)$(zedconfdir)/$${f}" || \ -L "$(DESTDIR)$(zedconfdir)/$${f}" || \
@@ -11,6 +11,7 @@ the instance name is used unescaped (see systemd.unit(5)), since zpool names
can contain characters which will be escaped by systemd. can contain characters which will be escaped by systemd.
Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com> Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
--- ---
etc/systemd/system/50-zfs.preset.in | 1 + etc/systemd/system/50-zfs.preset.in | 1 +
etc/systemd/system/Makefile.am | 1 + etc/systemd/system/Makefile.am | 1 +
@@ -31,7 +32,7 @@ index e4056a92c..030611419 100644
enable zfs-mount.service enable zfs-mount.service
enable zfs-share.service enable zfs-share.service
diff --git a/etc/systemd/system/Makefile.am b/etc/systemd/system/Makefile.am diff --git a/etc/systemd/system/Makefile.am b/etc/systemd/system/Makefile.am
index c374a52ac..25d1b99d7 100644 index 35f833de5..af3ae597c 100644
--- a/etc/systemd/system/Makefile.am --- a/etc/systemd/system/Makefile.am
+++ b/etc/systemd/system/Makefile.am +++ b/etc/systemd/system/Makefile.am
@@ -7,6 +7,7 @@ systemdunit_DATA = \ @@ -7,6 +7,7 @@ systemdunit_DATA = \
-55
View File
@@ -1,55 +0,0 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Antonio Russo <antonio.e.russo@gmail.com>
Date: Tue, 5 May 2020 22:15:16 -0600
Subject: [PATCH] Use installed python3
---
.../functional/cli_root/zfs_program/zfs_program_json.ksh | 6 +++---
.../tests/functional/rsend/send_encrypted_files.ksh | 2 +-
.../tests/functional/rsend/send_realloc_dnode_size.ksh | 2 +-
3 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/tests/zfs-tests/tests/functional/cli_root/zfs_program/zfs_program_json.ksh b/tests/zfs-tests/tests/functional/cli_root/zfs_program/zfs_program_json.ksh
index 3788543b0..c7ee4ae9a 100755
--- a/tests/zfs-tests/tests/functional/cli_root/zfs_program/zfs_program_json.ksh
+++ b/tests/zfs-tests/tests/functional/cli_root/zfs_program/zfs_program_json.ksh
@@ -100,10 +100,10 @@ typeset -a pos_cmds_out=(
# the same as the input and the --sort-keys option was added. Detect when
# --sort-keys is supported and apply the option to ensure the expected order.
#
-if python -m json.tool --sort-keys <<< "{}"; then
- JSON_TOOL_CMD="python -m json.tool --sort-keys"
+if python3 -m json.tool --sort-keys <<< "{}"; then
+ JSON_TOOL_CMD="python3 -m json.tool --sort-keys"
else
- JSON_TOOL_CMD="python -m json.tool"
+ JSON_TOOL_CMD="python3 -m json.tool"
fi
typeset -i cnt=0
diff --git a/tests/zfs-tests/tests/functional/rsend/send_encrypted_files.ksh b/tests/zfs-tests/tests/functional/rsend/send_encrypted_files.ksh
index 370f5382e..661fbe85d 100755
--- a/tests/zfs-tests/tests/functional/rsend/send_encrypted_files.ksh
+++ b/tests/zfs-tests/tests/functional/rsend/send_encrypted_files.ksh
@@ -87,7 +87,7 @@ log_must xattrtest -f 10 -x 3 -s 32768 -r -k -p /$TESTPOOL/$TESTFS2/xattrsadir
# OpenZFS issue #7432
log_must zfs set compression=on xattr=sa $TESTPOOL/$TESTFS2
log_must touch /$TESTPOOL/$TESTFS2/attrs
-log_must eval "python -c 'print \"a\" * 4096' | \
+log_must eval "python3 -c 'print \"a\" * 4096' | \
set_xattr_stdin bigval /$TESTPOOL/$TESTFS2/attrs"
log_must zfs set compression=off xattr=on $TESTPOOL/$TESTFS2
diff --git a/tests/zfs-tests/tests/functional/rsend/send_realloc_dnode_size.ksh b/tests/zfs-tests/tests/functional/rsend/send_realloc_dnode_size.ksh
index 551ed15db..bd30488ea 100755
--- a/tests/zfs-tests/tests/functional/rsend/send_realloc_dnode_size.ksh
+++ b/tests/zfs-tests/tests/functional/rsend/send_realloc_dnode_size.ksh
@@ -88,7 +88,7 @@ log_must zfs snapshot $POOL/fs@c
# 4. Create an empty file and add xattrs to it to exercise reclaiming a
# dnode that requires more than 1 slot for its bonus buffer (Zol #7433)
log_must zfs set compression=on xattr=sa $POOL/fs
-log_must eval "python -c 'print \"a\" * 512' |
+log_must eval "python3 -c 'print \"a\" * 512' |
set_xattr_stdin bigval /$POOL/fs/attrs"
log_must zfs snapshot $POOL/fs@d
@@ -7,6 +7,7 @@ Originally-By: Mo Zhou <cdluminate@gmail.com>
Originally-By: Antonio Russo <aerusso@aerusso.net> Originally-By: Antonio Russo <aerusso@aerusso.net>
Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com> Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
--- ---
man/Makefile.am | 2 +- man/Makefile.am | 2 +-
man/{man1/arcstat.1 => man8/arcstat.8} | 2 +- man/{man1/arcstat.1 => man8/arcstat.8} | 2 +-
@@ -14,7 +15,7 @@ Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
rename man/{man1/arcstat.1 => man8/arcstat.8} (99%) rename man/{man1/arcstat.1 => man8/arcstat.8} (99%)
diff --git a/man/Makefile.am b/man/Makefile.am diff --git a/man/Makefile.am b/man/Makefile.am
index 8ab1b7572..8b3dbe633 100644 index 64650c2b9..95a66a62f 100644
--- a/man/Makefile.am --- a/man/Makefile.am
+++ b/man/Makefile.am +++ b/man/Makefile.am
@@ -8,7 +8,6 @@ dist_man_MANS = \ @@ -8,7 +8,6 @@ dist_man_MANS = \
@@ -25,7 +26,7 @@ index 8ab1b7572..8b3dbe633 100644
\ \
man5/vdev_id.conf.5 \ man5/vdev_id.conf.5 \
\ \
@@ -21,6 +20,7 @@ dist_man_MANS = \ @@ -22,6 +21,7 @@ dist_man_MANS = \
man7/zpoolconcepts.7 \ man7/zpoolconcepts.7 \
man7/zpoolprops.7 \ man7/zpoolprops.7 \
\ \
@@ -22,7 +22,7 @@ Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
1 file changed, 33 insertions(+), 33 deletions(-) 1 file changed, 33 insertions(+), 33 deletions(-)
diff --git a/cmd/arcstat/arcstat.in b/cmd/arcstat/arcstat.in diff --git a/cmd/arcstat/arcstat.in b/cmd/arcstat/arcstat.in
index 9e7c52a6c..cd9a803a2 100755 index 0128fd817..d2b2e28d1 100755
--- a/cmd/arcstat/arcstat.in --- a/cmd/arcstat/arcstat.in
+++ b/cmd/arcstat/arcstat.in +++ b/cmd/arcstat/arcstat.in
@@ -441,73 +441,73 @@ def calculate(): @@ -441,73 +441,73 @@ def calculate():
@@ -20,16 +20,17 @@ also move l2_mfu_asize l2_mru_asize l2_prefetch_asize
l2_bufc_data_asize l2_bufc_metadata_asize to .get accessor l2_bufc_data_asize l2_bufc_metadata_asize to .get accessor
(these are only present with a cache device in the pool) (these are only present with a cache device in the pool)
Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com> Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
--- ---
cmd/arc_summary/arc_summary3 | 28 ++++++++++++++-------------- cmd/arc_summary/arc_summary3 | 28 ++++++++++++++--------------
cmd/arcstat/arcstat.in | 14 +++++++------- cmd/arcstat/arcstat.in | 14 +++++++-------
2 files changed, 21 insertions(+), 21 deletions(-) 2 files changed, 21 insertions(+), 21 deletions(-)
diff --git a/cmd/arc_summary/arc_summary3 b/cmd/arc_summary/arc_summary3 diff --git a/cmd/arc_summary/arc_summary3 b/cmd/arc_summary/arc_summary3
index 7b28012ed..fe6a6d9e2 100755 index 9d0c2d30d..fd2581ae2 100755
--- a/cmd/arc_summary/arc_summary3 --- a/cmd/arc_summary/arc_summary3
+++ b/cmd/arc_summary/arc_summary3 +++ b/cmd/arc_summary/arc_summary3
@@ -617,13 +617,13 @@ def section_arc(kstats_dict): @@ -609,13 +609,13 @@ def section_arc(kstats_dict):
prt_i1('L2 cached evictions:', f_bytes(arc_stats['evict_l2_cached'])) prt_i1('L2 cached evictions:', f_bytes(arc_stats['evict_l2_cached']))
prt_i1('L2 eligible evictions:', f_bytes(arc_stats['evict_l2_eligible'])) prt_i1('L2 eligible evictions:', f_bytes(arc_stats['evict_l2_eligible']))
prt_i2('L2 eligible MFU evictions:', prt_i2('L2 eligible MFU evictions:',
@@ -47,7 +48,7 @@ index 7b28012ed..fe6a6d9e2 100755
prt_i1('L2 ineligible evictions:', prt_i1('L2 ineligible evictions:',
f_bytes(arc_stats['evict_l2_ineligible'])) f_bytes(arc_stats['evict_l2_ineligible']))
print() print()
@@ -765,20 +765,20 @@ def section_l2arc(kstats_dict): @@ -757,20 +757,20 @@ def section_l2arc(kstats_dict):
f_perc(arc_stats['l2_hdr_size'], arc_stats['l2_size']), f_perc(arc_stats['l2_hdr_size'], arc_stats['l2_size']),
f_bytes(arc_stats['l2_hdr_size'])) f_bytes(arc_stats['l2_hdr_size']))
prt_i2('MFU allocated size:', prt_i2('MFU allocated size:',
@@ -79,7 +80,7 @@ index 7b28012ed..fe6a6d9e2 100755
print() print()
prt_1('L2ARC breakdown:', f_hits(l2_access_total)) prt_1('L2ARC breakdown:', f_hits(l2_access_total))
diff --git a/cmd/arcstat/arcstat.in b/cmd/arcstat/arcstat.in diff --git a/cmd/arcstat/arcstat.in b/cmd/arcstat/arcstat.in
index cd9a803a2..ea45dc602 100755 index d2b2e28d1..8004940b3 100755
--- a/cmd/arcstat/arcstat.in --- a/cmd/arcstat/arcstat.in
+++ b/cmd/arcstat/arcstat.in +++ b/cmd/arcstat/arcstat.in
@@ -482,8 +482,8 @@ def calculate(): @@ -482,8 +482,8 @@ def calculate():
@@ -0,0 +1,87 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Rich Ercolani <214141+rincebrain@users.noreply.github.com>
Date: Sat, 26 Aug 2023 14:25:46 -0400
Subject: [PATCH] Avoid save/restoring AMX registers to avoid a SPR erratum
Intel SPR erratum SPR4 says that if you trip into a vmexit while
doing FPU save/restore, your AMX register state might misbehave...
and by misbehave, I mean save all zeroes incorrectly, leading to
explosions if you restore it.
Since we're not using AMX for anything, the simple way to avoid
this is to just not save/restore those when we do anything, since
we're killing preemption of any sort across our save/restores.
If we ever decide to use AMX, it's not clear that we have any
way to mitigate this, on Linux...but I am not an expert.
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: Rich Ercolani <rincebrain@gmail.com>
Closes #14989
Closes #15168
(cherry picked from commit 277f2e587b085d1eb8aa48b4ac0768a9ef5745ab)
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
---
include/os/linux/kernel/linux/simd_x86.h | 19 ++++++++++++++-----
1 file changed, 14 insertions(+), 5 deletions(-)
diff --git a/include/os/linux/kernel/linux/simd_x86.h b/include/os/linux/kernel/linux/simd_x86.h
index 660f0d42d..455167ac8 100644
--- a/include/os/linux/kernel/linux/simd_x86.h
+++ b/include/os/linux/kernel/linux/simd_x86.h
@@ -157,6 +157,15 @@
#endif
#endif
+#ifndef XFEATURE_MASK_XTILE
+/*
+ * For kernels where this doesn't exist yet, we still don't want to break
+ * by save/restoring this broken nonsense.
+ * See issue #14989 or Intel errata SPR4 for why
+ */
+#define XFEATURE_MASK_XTILE 0x60000
+#endif
+
#include <linux/mm.h>
#include <linux/slab.h>
@@ -319,18 +328,18 @@ kfpu_begin(void)
union fpregs_state *state = zfs_kfpu_fpregs[smp_processor_id()];
#if defined(HAVE_XSAVES)
if (static_cpu_has(X86_FEATURE_XSAVES)) {
- kfpu_do_xsave("xsaves", &state->xsave, ~0);
+ kfpu_do_xsave("xsaves", &state->xsave, ~XFEATURE_MASK_XTILE);
return;
}
#endif
#if defined(HAVE_XSAVEOPT)
if (static_cpu_has(X86_FEATURE_XSAVEOPT)) {
- kfpu_do_xsave("xsaveopt", &state->xsave, ~0);
+ kfpu_do_xsave("xsaveopt", &state->xsave, ~XFEATURE_MASK_XTILE);
return;
}
#endif
if (static_cpu_has(X86_FEATURE_XSAVE)) {
- kfpu_do_xsave("xsave", &state->xsave, ~0);
+ kfpu_do_xsave("xsave", &state->xsave, ~XFEATURE_MASK_XTILE);
} else if (static_cpu_has(X86_FEATURE_FXSR)) {
kfpu_save_fxsr(&state->fxsave);
} else {
@@ -415,12 +424,12 @@ kfpu_end(void)
union fpregs_state *state = zfs_kfpu_fpregs[smp_processor_id()];
#if defined(HAVE_XSAVES)
if (static_cpu_has(X86_FEATURE_XSAVES)) {
- kfpu_do_xrstor("xrstors", &state->xsave, ~0);
+ kfpu_do_xrstor("xrstors", &state->xsave, ~XFEATURE_MASK_XTILE);
goto out;
}
#endif
if (static_cpu_has(X86_FEATURE_XSAVE)) {
- kfpu_do_xrstor("xrstor", &state->xsave, ~0);
+ kfpu_do_xrstor("xrstor", &state->xsave, ~XFEATURE_MASK_XTILE);
} else if (static_cpu_has(X86_FEATURE_FXSR)) {
kfpu_restore_fxsr(&state->fxsave);
} else {
--
2.39.2
-212
View File
@@ -1,212 +0,0 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Brian Behlendorf <behlendorf1@llnl.gov>
Date: Fri, 17 Dec 2021 09:52:13 -0800
Subject: [PATCH] Fix zvol_open() lock inversion
When restructuring the zvol_open() logic for the Linux 5.13 kernel
a lock inversion was accidentally introduced. In the updated code
the spa_namespace_lock is now taken before the zv_suspend_lock
allowing the following scenario to occur:
down_read <=== waiting for zv_suspend_lock
zvol_open <=== holds spa_namespace_lock
__blkdev_get
blkdev_get_by_dev
blkdev_open
...
mutex_lock <== waiting for spa_namespace_lock
spa_open_common
spa_open
dsl_pool_hold
dmu_objset_hold_flags
dmu_objset_hold
dsl_prop_get
dsl_prop_get_integer
zvol_create_minor
dmu_recv_end
zfs_ioc_recv_impl <=== holds zv_suspend_lock via zvol_suspend()
zfs_ioc_recv
...
This commit resolves the issue by moving the acquisition of the
spa_namespace_lock back to after the zv_suspend_lock which restores
the original ordering.
Additionally, as part of this change the error exit paths were
simplified where possible.
Reviewed-by: Tony Hutter <hutter2@llnl.gov>
Reviewed-by: Rich Ercolani <rincebrain@gmail.com>
Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Closes #12863
(cherry picked from commit 8a02d01e85556bbe3a1c6947bc11b8ef028d4023)
Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
---
module/os/linux/zfs/zvol_os.c | 121 ++++++++++++++++------------------
1 file changed, 58 insertions(+), 63 deletions(-)
diff --git a/module/os/linux/zfs/zvol_os.c b/module/os/linux/zfs/zvol_os.c
index 44caadd58..69479b3f7 100644
--- a/module/os/linux/zfs/zvol_os.c
+++ b/module/os/linux/zfs/zvol_os.c
@@ -496,8 +496,7 @@ zvol_open(struct block_device *bdev, fmode_t flag)
{
zvol_state_t *zv;
int error = 0;
- boolean_t drop_suspend = B_TRUE;
- boolean_t drop_namespace = B_FALSE;
+ boolean_t drop_suspend = B_FALSE;
#ifndef HAVE_BLKDEV_GET_ERESTARTSYS
hrtime_t timeout = MSEC2NSEC(zvol_open_timeout_ms);
hrtime_t start = gethrtime();
@@ -517,7 +516,36 @@ retry:
return (SET_ERROR(-ENXIO));
}
- if (zv->zv_open_count == 0 && !mutex_owned(&spa_namespace_lock)) {
+ mutex_enter(&zv->zv_state_lock);
+ /*
+ * Make sure zvol is not suspended during first open
+ * (hold zv_suspend_lock) and respect proper lock acquisition
+ * ordering - zv_suspend_lock before zv_state_lock
+ */
+ if (zv->zv_open_count == 0) {
+ if (!rw_tryenter(&zv->zv_suspend_lock, RW_READER)) {
+ mutex_exit(&zv->zv_state_lock);
+ rw_enter(&zv->zv_suspend_lock, RW_READER);
+ mutex_enter(&zv->zv_state_lock);
+ /* check to see if zv_suspend_lock is needed */
+ if (zv->zv_open_count != 0) {
+ rw_exit(&zv->zv_suspend_lock);
+ } else {
+ drop_suspend = B_TRUE;
+ }
+ } else {
+ drop_suspend = B_TRUE;
+ }
+ }
+ rw_exit(&zvol_state_lock);
+
+ ASSERT(MUTEX_HELD(&zv->zv_state_lock));
+
+ if (zv->zv_open_count == 0) {
+ boolean_t drop_namespace = B_FALSE;
+
+ ASSERT(RW_READ_HELD(&zv->zv_suspend_lock));
+
/*
* In all other call paths the spa_namespace_lock is taken
* before the bdev->bd_mutex lock. However, on open(2)
@@ -542,84 +570,51 @@ retry:
* the kernel so the only option is to return the error for
* the caller to handle it.
*/
- if (!mutex_tryenter(&spa_namespace_lock)) {
- rw_exit(&zvol_state_lock);
+ if (!mutex_owned(&spa_namespace_lock)) {
+ if (!mutex_tryenter(&spa_namespace_lock)) {
+ mutex_exit(&zv->zv_state_lock);
+ rw_exit(&zv->zv_suspend_lock);
#ifdef HAVE_BLKDEV_GET_ERESTARTSYS
- schedule();
- return (SET_ERROR(-ERESTARTSYS));
-#else
- if ((gethrtime() - start) > timeout)
+ schedule();
return (SET_ERROR(-ERESTARTSYS));
+#else
+ if ((gethrtime() - start) > timeout)
+ return (SET_ERROR(-ERESTARTSYS));
- schedule_timeout(MSEC_TO_TICK(10));
- goto retry;
+ schedule_timeout(MSEC_TO_TICK(10));
+ goto retry;
#endif
- } else {
- drop_namespace = B_TRUE;
- }
- }
-
- mutex_enter(&zv->zv_state_lock);
- /*
- * make sure zvol is not suspended during first open
- * (hold zv_suspend_lock) and respect proper lock acquisition
- * ordering - zv_suspend_lock before zv_state_lock
- */
- if (zv->zv_open_count == 0) {
- if (!rw_tryenter(&zv->zv_suspend_lock, RW_READER)) {
- mutex_exit(&zv->zv_state_lock);
- rw_enter(&zv->zv_suspend_lock, RW_READER);
- mutex_enter(&zv->zv_state_lock);
- /* check to see if zv_suspend_lock is needed */
- if (zv->zv_open_count != 0) {
- rw_exit(&zv->zv_suspend_lock);
- drop_suspend = B_FALSE;
+ } else {
+ drop_namespace = B_TRUE;
}
}
- } else {
- drop_suspend = B_FALSE;
- }
- rw_exit(&zvol_state_lock);
-
- ASSERT(MUTEX_HELD(&zv->zv_state_lock));
- if (zv->zv_open_count == 0) {
- ASSERT(RW_READ_HELD(&zv->zv_suspend_lock));
error = -zvol_first_open(zv, !(flag & FMODE_WRITE));
- if (error)
- goto out_mutex;
- }
- if ((flag & FMODE_WRITE) && (zv->zv_flags & ZVOL_RDONLY)) {
- error = -EROFS;
- goto out_open_count;
+ if (drop_namespace)
+ mutex_exit(&spa_namespace_lock);
}
- zv->zv_open_count++;
-
- mutex_exit(&zv->zv_state_lock);
- if (drop_namespace)
- mutex_exit(&spa_namespace_lock);
- if (drop_suspend)
- rw_exit(&zv->zv_suspend_lock);
-
- zfs_check_media_change(bdev);
-
- return (0);
+ if (error == 0) {
+ if ((flag & FMODE_WRITE) && (zv->zv_flags & ZVOL_RDONLY)) {
+ if (zv->zv_open_count == 0)
+ zvol_last_close(zv);
-out_open_count:
- if (zv->zv_open_count == 0)
- zvol_last_close(zv);
+ error = SET_ERROR(-EROFS);
+ } else {
+ zv->zv_open_count++;
+ }
+ }
-out_mutex:
mutex_exit(&zv->zv_state_lock);
- if (drop_namespace)
- mutex_exit(&spa_namespace_lock);
if (drop_suspend)
rw_exit(&zv->zv_suspend_lock);
- return (SET_ERROR(error));
+ if (error == 0)
+ zfs_check_media_change(bdev);
+
+ return (error);
}
static void
+5 -6
View File
@@ -4,9 +4,8 @@
0004-import-with-d-dev-disk-by-id-in-scan-service.patch 0004-import-with-d-dev-disk-by-id-in-scan-service.patch
0005-Enable-zed-emails.patch 0005-Enable-zed-emails.patch
0006-dont-symlink-zed-scripts.patch 0006-dont-symlink-zed-scripts.patch
0007-Use-installed-python3.patch 0007-Add-systemd-unit-for-importing-specific-pools.patch
0008-Add-systemd-unit-for-importing-specific-pools.patch 0008-Patch-move-manpage-arcstat-1-to-arcstat-8.patch
0009-Patch-move-manpage-arcstat-1-to-arcstat-8.patch 0009-arcstat-Fix-integer-division-with-python3.patch
0010-arcstat-Fix-integer-division-with-python3.patch 0010-arc-stat-summary-guard-access-to-l2arc-MFU-MRU-stats.patch
0011-arc-stat-summary-guard-access-to-l2arc-MFU-MRU-stats.patch 0011-Avoid-save-restoring-AMX-registers-to-avoid-a-SPR-er.patch
0012-Fix-zvol_open-lock-inversion.patch
+1 -1
View File
@@ -10,7 +10,7 @@ SPHINX_BUILD = $(shell dpkg -L python3-sphinx | grep -m 1 "/sphinx-build$$")
export DEB_BUILD_MAINT_OPTIONS = hardening=+all export DEB_BUILD_MAINT_OPTIONS = hardening=+all
%: %:
dh $@ --with autoreconf,python3,sphinxdoc --parallel dh $@ --with autoreconf,python3,sphinxdoc
adapt_meta_file: adapt_meta_file:
@# Embed the downstream version in the module. @# Embed the downstream version in the module.
+35 -26
View File
@@ -1,4 +1,4 @@
#!/bin/sh -eu #!/bin/sh -u
# directly exit successfully when zfs module is not loaded # directly exit successfully when zfs module is not loaded
if ! [ -d /sys/module/zfs ]; then if ! [ -d /sys/module/zfs ]; then
@@ -14,47 +14,56 @@ get_property () {
# since they're not available on pools https://github.com/openzfs/zfs/pull/11680 # since they're not available on pools https://github.com/openzfs/zfs/pull/11680
# TODO: use zpool user-defined property when such feature is available. # TODO: use zpool user-defined property when such feature is available.
pool="$1" pool="$1"
zfs get -H -o value "${PROPERTY_NAME}" "${pool}" 2>/dev/null || return 1 zfs get -H -o value "${PROPERTY_NAME}" "${pool}" 2>/dev/null
} }
trim_if_not_already_trimming () { trim_if_not_already_trimming () {
pool="$1" pool="$1"
if ! zpool status "${pool}" | grep -q "trimming"; then if ! zpool status "${pool}" | grep -q "trimming"; then
# Ignore errors (i.e. HDD pools), # This will error on HDD-only pools: doesn't matter
# and continue with trimming other pools. zpool trim "${pool}"
zpool trim "${pool}" || true
fi fi
} }
zpool_is_nvme_only () { # Walk up the kernel parent names:
zpool=$1 # this will catch devices from LVM &a.
# get a list of devices attached to the specified zpool get_transp () {
zpool list -vHPL "${zpool}" | dev="$1"
awk -F'\t' '$2 ~ /^\/dev\// { while pd="$(lsblk -dnr -o PKNAME "$dev")"; do
if($2 !~ /^\/dev\/nvme/) if [ -z "$pd" ]; then
exit 1 break
}' else
dev="/dev/$pd"
fi
done
lsblk -dnr -o TRAN "$dev"
}
pool_is_nvme_only () {
pool="$1"
# get a list of devices attached to the specified pool
zpool list -vHP "${pool}" | \
awk -F'\t' '$2 ~ "^/dev/" {print $2}' | \
while read -r dev
do
[ "$(get_transp "$dev")" = "nvme" ] || return
done
} }
# TRIM all healthy pools that are not already trimming as per their configs. # TRIM all healthy pools that are not already trimming as per their configs.
zpool list -H -o health,name 2>&1 | \ zpool list -H -o health,name 2>&1 | \
awk -F'\t' '$1 == "ONLINE" {print $2}' | \ awk -F'\t' '$1 == "ONLINE" {print $2}' | \
while read pool while read -r pool
do do
# read user-defined config # read user-defined config
ret=$(get_property "${pool}") ret=$(get_property "${pool}") || continue
if [ $? -ne 0 ] || [ "disable" = "${ret}" ]; then case "${ret}" in
: disable);;
elif [ "enable" = "${ret}" ]; then enable) trim_if_not_already_trimming "${pool}" ;;
trim_if_not_already_trimming "${pool}" -|auto) if pool_is_nvme_only "${pool}"; then trim_if_not_already_trimming "${pool}"; fi ;;
elif [ "-" = "${ret}" ] || [ "auto" = "${ret}" ]; then *) cat > /dev/stderr <<EOF
if zpool_is_nvme_only "${pool}"; then
trim_if_not_already_trimming "${pool}"
fi
else
cat > /dev/stderr <<EOF
$0: [WARNING] illegal value "${ret}" for property "${PROPERTY_NAME}" of ZFS dataset "${pool}". $0: [WARNING] illegal value "${ret}" for property "${PROPERTY_NAME}" of ZFS dataset "${pool}".
$0: Acceptable choices for this property are: auto, enable, disable. The default is auto. $0: Acceptable choices for this property are: auto, enable, disable. The default is auto.
EOF EOF
fi esac
done done
+2
View File
@@ -0,0 +1,2 @@
usr/lib/dracut
usr/share/man/man7/dracut.zfs.7
+1
View File
@@ -0,0 +1 @@
executable-not-elf-or-script *usr/share/initramfs-tools/scripts/zfs*
+9 -9
View File
@@ -1,13 +1,13 @@
arch-dependent-file-in-usr-share arch-dependent-file-in-usr-share
script-not-executable usr/share/zfs/common.sh
command-in-sbin-has-manpage-in-incorrect-section command-in-sbin-has-manpage-in-incorrect-section
arch-dep-package-has-big-usr-share arch-dep-package-has-big-usr-share
manpage-without-executable manpage-without-executable
national-encoding usr/share/zfs/zfs-tests/tests/functional/channel_program/lua_core/tst.lib_table.lua national-encoding *usr/share/zfs/zfs-tests/tests/functional/channel_program/lua_core/tst.lib_table.lua*
executable-not-elf-or-script usr/share/zfs/zfs-tests/tests/functional/cli_root/zfs_jail/jail.conf executable-not-elf-or-script *usr/share/zfs/zfs-tests/tests/functional/cli_root/zfs_jail/jail.conf*
script-not-executable usr/share/zfs/zfs-tests/include/default.cfg package-contains-documentation-outside-usr-share-doc *usr/share/zfs/zfs-tests/*
script-not-executable usr/share/zfs/zfs-tests/tests/functional/cli_root/zfs_wait/zfs_wait.kshlib script-not-executable *usr/share/zfs/common.sh*
script-not-executable usr/share/zfs/zfs-tests/tests/functional/cli_root/zpool_wait/zpool_wait.kshlib script-not-executable *usr/share/zfs/zfs-tests/include/default.cfg*
script-not-executable usr/share/zfs/zfs-tests/tests/functional/persist_l2arc/persist_l2arc.cfg script-not-executable *usr/share/zfs/zfs-tests/tests/functional/cli_root/zfs_wait/zfs_wait.kshlib*
script-not-executable usr/share/zfs/zfs-tests/tests/functional/redacted_send/redacted.kshlib script-not-executable *usr/share/zfs/zfs-tests/tests/functional/cli_root/zpool_wait/zpool_wait.kshlib*
package-contains-documentation-outside-usr-share-doc usr/share/zfs/zfs-tests/* script-not-executable *usr/share/zfs/zfs-tests/tests/functional/l2arc/l2arc.cfg*
script-not-executable *usr/share/zfs/zfs-tests/tests/functional/redacted_send/redacted.kshlib*
+6
View File
@@ -8,7 +8,11 @@ lib/systemd/system/zfs-import-scan.service
lib/systemd/system/zfs-import@.service lib/systemd/system/zfs-import@.service
lib/systemd/system/zfs-import.target lib/systemd/system/zfs-import.target
lib/systemd/system/zfs-import.service lib/systemd/system/zfs-import.service
lib/systemd/system/zfs-load-key.service
lib/systemd/system/zfs-mount.service lib/systemd/system/zfs-mount.service
lib/systemd/system/zfs-scrub-monthly@.timer
lib/systemd/system/zfs-scrub-weekly@.timer
lib/systemd/system/zfs-scrub@.service
lib/systemd/system/zfs-share.service lib/systemd/system/zfs-share.service
lib/systemd/system/zfs-volume-wait.service lib/systemd/system/zfs-volume-wait.service
lib/systemd/system/zfs-volumes.target lib/systemd/system/zfs-volumes.target
@@ -27,6 +31,7 @@ sbin/zstream
sbin/zstreamdump sbin/zstreamdump
usr/bin/zvol_wait usr/bin/zvol_wait
usr/lib/modules-load.d/ lib/ usr/lib/modules-load.d/ lib/
usr/lib/zfs-linux/zfs_prepare_disk
usr/lib/zfs-linux/zpool.d/ usr/lib/zfs-linux/zpool.d/
usr/lib/zfs-linux/zpool_influxdb usr/lib/zfs-linux/zpool_influxdb
usr/sbin/arc_summary usr/sbin/arc_summary
@@ -64,6 +69,7 @@ usr/share/man/man8/zfs-list.8
usr/share/man/man8/zfs-load-key.8 usr/share/man/man8/zfs-load-key.8
usr/share/man/man8/zfs-mount-generator.8 usr/share/man/man8/zfs-mount-generator.8
usr/share/man/man8/zfs-mount.8 usr/share/man/man8/zfs-mount.8
usr/share/man/man8/zfs_prepare_disk.8
usr/share/man/man8/zfs-program.8 usr/share/man/man8/zfs-program.8
usr/share/man/man8/zfs-project.8 usr/share/man/man8/zfs-project.8
usr/share/man/man8/zfs-projectspace.8 usr/share/man/man8/zfs-projectspace.8
+3
View File
@@ -0,0 +1,3 @@
sbin/zfs bin/zfs
sbin/zpool bin/zpool
usr/lib/zfs-linux/zpool_influxdb bin/zpool_influxdb
+7 -8
View File
@@ -1,14 +1,13 @@
spare-manual-page spare-manual-page
systemd-service-file-refers-to-unusual-wantedby-target systemd-service-file-refers-to-unusual-wantedby-target
binary-without-manpage usr/sbin/dbufstat binary-without-manpage *usr/sbin/dbufstat*
binary-without-manpage usr/sbin/arc_summary binary-without-manpage *usr/sbin/arc_summary*
manpage-has-errors-from-man manpage-has-errors-from-man
appstream-metadata-missing-modalias-provide appstream-metadata-missing-modalias-provide
command-in-sbin-has-manpage-in-incorrect-section command-in-sbin-has-manpage-in-incorrect-section
package-supports-alternative-init-but-no-init.d-script lib/systemd/system/zfs-import-cache.service package-supports-alternative-init-but-no-init.d-script *lib/systemd/system/zfs-import-cache.service*
package-supports-alternative-init-but-no-init.d-script lib/systemd/system/zfs-import-scan.service package-supports-alternative-init-but-no-init.d-script *lib/systemd/system/zfs-import-scan.service*
spelling-error-in-manpage spelling-error-in-manpage
package-supports-alternative-init-but-no-init.d-script lib/systemd/system/zfs-volume-wait.service package-supports-alternative-init-but-no-init.d-script *lib/systemd/system/zfs-volume-wait.service*
systemd-service-file-missing-documentation-key lib/systemd/system/zfs-volume-wait.service systemd-service-file-missing-documentation-key *lib/systemd/system/zfs-volume-wait.service*
extra-license-file usr/share/doc/zfsutils-linux/LICENSE.gz extra-license-file *usr/share/doc/zfsutils-linux/LICENSE.gz*
package-supports-alternative-init-but-no-init.d-script lib/systemd/system/zfs-load-module.service