63 Commits

Author SHA1 Message Date
Thomas Lamprecht 020d1fc78c Revert "buildsys: switch upload dist over to buster"
this was intended for the master branch, argh..

This reverts commit bdbccd235a.

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-05-24 11:13:43 +02:00
Thomas Lamprecht bdbccd235a buildsys: switch upload dist over to buster
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-05-23 18:21:21 +02:00
Thomas Lamprecht 696f8e69e2 bump version to 0.7.13-pve1~bpo2
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-03-27 10:29:30 +01:00
Thomas Lamprecht f8d2e88078 remove conflict with insserv (<< 1.18)
we do not use or ship initscripts anyway and support only systemd

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-03-27 09:55:28 +01:00
Thomas Lamprecht 5e3e80687e fixup spl und zfs changelog entries
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-03-08 06:53:42 +01:00
Stoiko Ivanov d968500bc7 bump version to 0.7.13-pve1~bpo1
Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
2019-03-08 06:46:25 +01:00
Stoiko Ivanov 5440c7266a add vdev_id.conf.scsi.example to examples
(adapted from salsa.d.o 7ca194b9)

Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
2019-03-08 06:46:25 +01:00
Stoiko Ivanov 00430d087a rebase patches on top of zfs-0.7.13
rebase done with import-patchqueue/export-patchqueue

Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
2019-03-08 06:46:25 +01:00
Stoiko Ivanov c3ea9788ad update ZFS to 0.7.13
Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
2019-03-08 06:46:25 +01:00
Stoiko Ivanov d8740a92c1 spl: drop patch already contained in 0.7.13
Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
2019-03-08 06:46:25 +01:00
Stoiko Ivanov 256c6c0238 update SPL to 0.7.13
Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
2019-03-08 06:46:25 +01:00
Stoiko Ivanov f7305de3c0 build: use dpkg-parsechangelog
Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
2019-03-08 06:46:25 +01:00
Fabian Grünbichler fa456d6c4b build: add kernel target
to extract the patched sources for module building

Reviewed-by: Stoiko Ivanov <s.ivanov@proxmox.com>
Tested-by: Stoiko Ivanov <s.ivanov@proxmox.com>
Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
2019-02-27 13:46:29 +01:00
Fabian Grünbichler 3d885de40c build: add dsc target
and rework build directory preparation accordingly.

Reviewed-by: Stoiko Ivanov <s.ivanov@proxmox.com>
Tested-by: Stoiko Ivanov <s.ivanov@proxmox.com>
Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
2019-02-27 13:46:28 +01:00
Fabian Grünbichler 4a816df53e debian: switch to DH 10
Reviewed-by: Stoiko Ivanov <s.ivanov@proxmox.com>
Tested-by: Stoiko Ivanov <s.ivanov@proxmox.com>
Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
2019-02-27 13:46:28 +01:00
Fabian Grünbichler f3f5ce5d7f submodules: remove old submodule references
Reviewed-by: Stoiko Ivanov <s.ivanov@proxmox.com>
Tested-by: Stoiko Ivanov <s.ivanov@proxmox.com>
Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
2019-02-27 13:46:28 +01:00
Fabian Grünbichler 2a904e377e build: update Makefile for new structure
Reviewed-by: Stoiko Ivanov <s.ivanov@proxmox.com>
Tested-by: Stoiko Ivanov <s.ivanov@proxmox.com>
Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
2019-02-27 13:46:27 +01:00
Fabian Grünbichler ac43a7be1f update README
to reference Debian's git repositories on salsa

Reviewed-by: Stoiko Ivanov <s.ivanov@proxmox.com>
Tested-by: Stoiko Ivanov <s.ivanov@proxmox.com>
Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
2019-02-27 13:46:27 +01:00
Fabian Grünbichler dee2ef0e31 spl/debian: add packaging files
based on Debian's packaging work, but simplified:
- no DKMS

and remove old patches which were based on top of Debian's packaging.

Reviewed-by: Stoiko Ivanov <s.ivanov@proxmox.com>
Tested-by: Stoiko Ivanov <s.ivanov@proxmox.com>
Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
2019-02-27 13:46:26 +01:00
Fabian Grünbichler 28f635be8c zfs/debian: add packaging files
based on Debian's packaging work, but simplified:
- no DKMS
- no dracut
- no udebs

and remove old patches which were based on top of Debian's packaging.

Reviewed-by: Stoiko Ivanov <s.ivanov@proxmox.com>
Tested-by: Stoiko Ivanov <s.ivanov@proxmox.com>
Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
2019-02-27 13:46:26 +01:00
Fabian Grünbichler 2e2aafd11c submodules: add upstream mirrors
pointing to ZFS on Linux's github repositories

Reviewed-by: Stoiko Ivanov <s.ivanov@proxmox.com>
Tested-by: Stoiko Ivanov <s.ivanov@proxmox.com>
Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
2019-02-27 13:46:25 +01:00
Fabian Grünbichler 4e389d452b spl: rebase patches on top of debian/0.7.12-1
and drop those contained in 0.7.12

Reviewed-by: Stoiko Ivanov <s.ivanov@proxmox.com>
Tested-by: Stoiko Ivanov <s.ivanov@proxmox.com>
Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
2019-02-27 13:46:20 +01:00
Fabian Grünbichler 3e9c7d6dff spl: update submodule to debian/0.7.12-1
Reviewed-by: Stoiko Ivanov <s.ivanov@proxmox.com>
Tested-by: Stoiko Ivanov <s.ivanov@proxmox.com>
Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
2019-02-27 13:46:19 +01:00
Fabian Grünbichler 2249b05575 zfs: rebase patches on top of 0.7.12-2
and drop those that are part of 0.7.12

Reviewed-by: Stoiko Ivanov <s.ivanov@proxmox.com>
Tested-by: Stoiko Ivanov <s.ivanov@proxmox.com>
Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
2019-02-27 13:46:15 +01:00
Fabian Grünbichler 002d5f1b8c zfs: update submodule to debian/0.7.12-2
Reviewed-by: Stoiko Ivanov <s.ivanov@proxmox.com>
Tested-by: Stoiko Ivanov <s.ivanov@proxmox.com>
2019-02-27 13:44:49 +01:00
Stoiko Ivanov 65a9766fa0 bump version to 0.7.12-pve1~bpo1
Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
2018-11-14 18:27:04 +01:00
Stoiko Ivanov 04a710dd91 update/rebase to zfs-0.7.12 with patches from ZOL
Reorder patches, so that the upstream changeset comes last

Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
2018-11-14 18:27:04 +01:00
Stoiko Ivanov 2e5067b011 update/rebase to spl-0.7.12 with patches from ZOL
Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
2018-11-14 18:27:04 +01:00
Thomas Lamprecht 851f368539 add patch to revert upstream shipping of init.d scripts
else update-rc.d/insserv complains if sysv-rc is installed,
which may be on a from Jessie upgraded system.

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2018-10-31 15:52:47 +01:00
Stoiko Ivanov 1c36de4a98 bump version to 0.7.11-pve2~bpo1
Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
2018-10-30 14:24:20 +01:00
Stoiko Ivanov b6c5bd4c51 fix missing Breaks/Replaces for zfs-initramfs
Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
2018-10-30 14:24:20 +01:00
Stoiko Ivanov 1bb9f57dcf Backport deadlock fix for issue ZOL#7939
A deadlock issue got fixed upstream and merged into master [0].
This patch backports the fix by splitting it into the parts for SPL and ZFS.

[0] https://github.com/zfsonlinux/zfs/pull/7939

Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
2018-10-30 14:24:19 +01:00
Stoiko Ivanov ff03aa2dfd cherry-pick 2 patches planned for zfs-0.7.12
both patches have been backported and approved upstream, and will end up in
0.7.12.

Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
2018-10-30 14:24:19 +01:00
Stoiko Ivanov f587002c09 rebase ZFS on top of debian/0.7.11-3
drop already applied patches

Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
2018-10-30 14:24:19 +01:00
Stoiko Ivanov ad41a6994b rebase SPL on top of debian/0.7.11
drop already applied patches

Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
2018-10-30 14:24:19 +01:00
Thomas Lamprecht 0b063f2c20 bump version to 0.7.11-pve1~bpo1
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2018-09-17 11:41:40 +02:00
Thomas Lamprecht ea3522b2f7 update/rebase to spl-0.7.11 with patches from ZOL
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2018-09-17 11:39:40 +02:00
Thomas Lamprecht aa7ac7c184 update/rebase to zfs-0.7.11 with patches from ZOL
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2018-09-17 11:39:40 +02:00
Stoiko Ivanov a010b40938 update/rebase to zfs-0.7.10 with patches from ZOL
Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
2018-09-13 08:54:51 +02:00
Stoiko Ivanov f0371a1b16 update/rebase to spl-0.7.10 with patches from ZOL
Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
2018-09-13 08:54:51 +02:00
Stoiko Ivanov 933b31ffad bump ZFS version to 0.7.9-pve3~bpo9
Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
2018-08-09 10:12:10 +02:00
Stoiko Ivanov 76a4c29ab5 Cherry-pick fix for deadlock umount/snapentry_expire
Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
2018-08-09 10:12:06 +02:00
Stoiko Ivanov afa7541760 bump ZFS version to 0.7.9-pve2~bpo9
Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
2018-07-16 12:00:12 +02:00
Stoiko Ivanov f3341ff73f Cherry-pick fix for zpl_mount deadlock
Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
2018-07-16 12:00:12 +02:00
Stoiko Ivanov 50ad4ffe78 update ZFS submodule to debian/0.7.9-3
drop already applied patch fixing zfs-test Conflicts and Breaks

Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
2018-07-16 12:00:11 +02:00
Stoiko Ivanov cabb465d41 bump version to 0.7.9-pve1~bpo9
Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
2018-05-22 10:03:05 +02:00
Stoiko Ivanov cd09cd8030 Add patch for fixing zfs-test/zfsutils file move
Exported from https://salsa.debian.org/zfsonlinux-team/zfs/merge_requests/2

Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
2018-05-22 10:03:05 +02:00
Stoiko Ivanov fccda2b9e6 rebase SPL on top of debian/0.7.9-2
Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
2018-05-22 10:03:05 +02:00
Stoiko Ivanov 5a3a6c060f update SPL submodule to debian/0.7.9-2
Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
2018-05-22 10:03:05 +02:00
Stoiko Ivanov 170bd23f1a rebase ZFS on top of debian/0.7.9-2
Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
2018-05-22 10:03:05 +02:00
Stoiko Ivanov 7abe13017f update ZFS submodule to debian/0.7.9-2
Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
2018-05-22 10:03:04 +02:00
Wolfgang Bumiller 47ae0e2662 buildsys: -j safety
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2018-05-04 12:05:16 +02:00
Fabian Grünbichler 849c46778d bump version to 0.7.8-pve1 2018-04-30 13:48:06 +02:00
Fabian Grünbichler fd313b306e no-change update to 0.7.8
to reduce version number confusion
2018-04-30 13:46:29 +02:00
Fabian Grünbichler c0f28922e8 bump ZFS version to 0.7.7-pve2~bpo9
(note: this change only affects the kernel modules and headers)
2018-04-09 09:56:49 +02:00
Fabian Grünbichler 7fdf8cc174 revert potentially buggy zap_add change
until investigation of upstream issue[1] is completed.

1: https://github.com/zfsonlinux/zfs/issues/7401
2018-04-09 09:47:38 +02:00
Fabian Grünbichler 42e934e271 bump version to 0.7.7-pve1~bpo9 2018-04-03 14:49:54 +02:00
Fabian Grünbichler 026bc5c9b2 don't install enum-extract.pl
it's only needed for building the modules
2018-04-03 14:49:54 +02:00
Fabian Grünbichler edf5051c71 update SPL to 0.7.7
by importing the upstream release as patches.
2018-04-03 14:27:05 +02:00
Fabian Grünbichler 75b07eca3e update ZFS to 0.7.7
by importing the upstream release as patches. replace user namespace
patch with version which has been applied usptream.
2018-04-03 14:25:21 +02:00
Fabian Grünbichler 8324054718 rebase SPL on top of debian/0.7.6-1 2018-04-03 14:16:16 +02:00
Fabian Grünbichler 1fa7e3ca4d rebase ZFS on top of debian/0.7.6-1 2018-04-03 14:10:51 +02:00
Fabian Grünbichler 8a088a9e2a buildsys: upload to pmg as well 2018-02-21 11:12:13 +01:00
113 changed files with 5170 additions and 4597 deletions
+6 -6
View File
@@ -1,6 +1,6 @@
[submodule "zfs-debian"]
path = zfs-debian
url = ../mirror_zfs-debian
[submodule "spl-debian"]
path = spl-debian
url = ../mirror_spl-debian
[submodule "zfs/upstream"]
path = zfs/upstream
url = ../mirror_zfs
[submodule "spl/upstream"]
path = spl/upstream
url = ../mirror_spl
+57 -32
View File
@@ -2,22 +2,24 @@ RELEASE=5.1
# source form https://github.com/zfsonlinux/
ZFSVER=0.7.6
ZFSPKGREL=pve1~bpo9
SPLPKGREL=pve1~bpo9
ZFSPKGVER=${ZFSVER}-${ZFSPKGREL}
SPLPKGVER=${ZFSVER}-${SPLPKGREL}
SPLDIR=spl-linux_${ZFSVER}
SPLSRC=spl/upstream
SPLPKG=spl/debian
ZFSDIR=zfs-linux_${ZFSVER}
ZFSSRC=zfs/upstream
ZFSPKG=zfs/debian
SPLDIR=spl-build
SPLSRC=spl-debian
ZFSDIR=zfs-build
ZFSSRC=zfs-debian
ZFSVER != dpkg-parsechangelog -l ${ZFSPKG}/changelog -Sversion | cut -d- -f1
SPL_DEBS= \
ZFSPKGVER != dpkg-parsechangelog -l ${ZFSPKG}/changelog -Sversion
SPLPKGVER != dpkg-parsechangelog -l ${SPLPKG}/changelog -Sversion
SPL_DEB = \
spl_${SPLPKGVER}_amd64.deb
SPL_DSC = spl-linux_${SPLPKGVER}.dsc
ZFS_DEBS= \
libnvpair1linux_${ZFSPKGVER}_amd64.deb \
ZFS_DEB1= libnvpair1linux_${ZFSPKGVER}_amd64.deb
ZFS_DEB2= \
libuutil1linux_${ZFSPKGVER}_amd64.deb \
libzfs2linux_${ZFSPKGVER}_amd64.deb \
libzfslinux-dev_${ZFSPKGVER}_amd64.deb \
@@ -27,11 +29,23 @@ zfs-zed_${ZFSPKGVER}_amd64.deb \
zfs-initramfs_${ZFSPKGVER}_all.deb \
zfs-test_${ZFSPKGVER}_amd64.deb \
zfsutils-linux_${ZFSPKGVER}_amd64.deb
ZFS_DEBS= $(ZFS_DEB1) $(ZFS_DEB2)
ZFS_DSC = zfs-linux_${ZFSPKGVER}.dsc
DEBS=${SPL_DEBS} ${ZFS_DEBS}
DEBS=${SPL_DEB} ${ZFS_DEBS}
DSCS=${SPL_DSC} ${ZFS_DSC}
all: deb
.PHONY: deb
deb: ${DEBS}
.PHONY: dsc
dsc: ${DSCS}
# called from pve-kernel's Makefile to get patched sources
.PHONY: kernel
kernel: dsc
dpkg-source -x ${SPL_DSC} ../pkg-spl
dpkg-source -x ${ZFS_DSC} ../pkg-zfs
.PHONY: dinstall
dinstall: ${DEBS}
@@ -39,41 +53,52 @@ dinstall: ${DEBS}
.PHONY: submodule
submodule:
test -f "${ZFSSRC}/debian/changelog" || git submodule update --init
test -f "${SPLSRC}/debian/changelog" || git submodule update --init
test -f "${ZFSSRC}/README.markdown" || git submodule update --init
test -f "${SPLSRC}/README.markdown" || git submodule update --init
.PHONY: spl
spl ${SPL_DEBS}: ${SPLSRC}
spl: ${SPL_DEB}
${SPL_DEB}: ${SPLDIR}
cd ${SPLDIR}; dpkg-buildpackage -b -uc -us
lintian ${SPL_DEB}
${SPL_DSC}: ${SPLDIR}
tar czf spl-linux_${ZFSVER}.orig.tar.gz ${SPLDIR}
cd ${SPLDIR}; dpkg-buildpackage -S -uc -us -d
lintian $@
${SPLDIR}: ${SPLSRC} ${SPLPKG}
rm -rf ${SPLDIR}
mkdir ${SPLDIR}
cp -a ${SPLSRC}/* ${SPLDIR}/
mv ${SPLDIR}/debian/changelog ${SPLDIR}/debian/changelog.org
cat spl-changelog.Debian ${SPLDIR}/debian/changelog.org > ${SPLDIR}/debian/changelog
cd ${SPLDIR}; ln -s ../spl-patches patches
cd ${SPLDIR}; quilt push -a
cd ${SPLDIR}; rm -rf .pc ./patches
cd ${SPLDIR}; dpkg-buildpackage -b -uc -us
cp -a ${SPLPKG} ${SPLDIR}/debian
.PHONY: zfs
zfs ${ZFS_DEBS} ${ZFS_TRANS_DEBS}: ${ZFSSRC}
zfs: $(ZFS_DEBS)
$(ZFS_DEB2): $(ZFS_DEB1)
$(ZFS_DEB1): ${ZFSDIR}
cd ${ZFSDIR}; dpkg-buildpackage -b -uc -us
lintian ${ZFS_DEBS}
${ZFS_DSC}: ${ZFSDIR}
tar czf zfs-linux_${ZFSVER}.orig.tar.gz ${ZFSDIR}
cd ${ZFSDIR}; dpkg-buildpackage -S -uc -us -d
lintian $@
${ZFSDIR}: $(ZFSSRC) ${ZFSPKG}
rm -rf ${ZFSDIR}
mkdir ${ZFSDIR}
cp -a ${ZFSSRC}/* ${ZFSDIR}/
mv ${ZFSDIR}/debian/changelog ${ZFSDIR}/debian/changelog.org
cat zfs-changelog.Debian ${ZFSDIR}/debian/changelog.org > ${ZFSDIR}/debian/changelog
cd ${ZFSDIR}; ln -s ../zfs-patches patches
cd ${ZFSDIR}; quilt push -a
cd ${ZFSDIR}; rm -rf .pc ./patches
cd ${ZFSDIR}; dpkg-buildpackage -b -uc -us
cp -a ${ZFSPKG} ${ZFSDIR}/debian
.PHONY: clean
clean:
rm -rf *~ *.deb *.changes *.buildinfo ${ZFSDIR} ${SPLDIR}
rm -rf *~ *.deb *.changes *.buildinfo *.dsc *.orig.tar.* *.debian.tar.* ${ZFSDIR} ${SPLDIR}
.PHONY: distclean
distclean: clean
.PHONY: upload
upload: ${DEBS}
tar -cf - ${DEBS} | ssh repoman@repo.proxmox.com -- upload --product pve --dist stretch --arch amd64
tar -cf - ${DEBS} | ssh repoman@repo.proxmox.com -- upload --product pve,pmg --dist stretch --arch amd64
+2 -2
View File
@@ -2,8 +2,8 @@ Proxmox VE packaging for ZFS on Linux
This is based on code from:
https://github.com/zfsonlinux/pkg-spl.git
https://github.com/zfsonlinux/pkg-zfs.git
https://salsa.debian.org/zfsonlinux-team/zfs
https://salsa.debian.org/zfsonlinux-team/spl
We removed the dkms/modules related code, because we ship the
modules with the kernel.
-120
View File
@@ -1,120 +0,0 @@
spl-linux (0.7.6-pve1~bpo9) unstable; urgency=medium
* update SPL to 0.7.6
-- Proxmox Support Team <support@proxmox.com> Wed, 21 Feb 2018 09:47:54 +0100
spl-linux (0.7.4-pve1~bpo9) unstable; urgency=medium
* update SPL to 0.7.4
-- Proxmox Support Team <support@proxmox.com> Tue, 19 Dec 2017 12:52:42 +0100
spl-linux (0.7.3-pve1~bpo9) unstable; urgency=medium
* update spl to 0.7.3
-- Proxmox Support Team <support@proxmox.com> Mon, 6 Nov 2017 09:14:19 +0100
spl-linux (0.7.2-pve1~bpo90) unstable; urgency=medium
* update spl to 0.7.2
* clean up man pages
-- Proxmox Support Team <support@proxmox.com> Thu, 12 Oct 2017 13:33:04 +0200
spl-linux (0.6.5.11-pve10~bpo90) unstable; urgency=medium
* update spl to debian/0.6.5.11-1
-- Proxmox Support Team <support@proxmox.com> Thu, 27 Jul 2017 13:11:45 +0200
spl-linux (0.6.5.9-pve9~bpo90) unstable; urgency=medium
* rebuild for PVE 5.0 / Debian Stretch
-- Proxmox Support Team <support@proxmox.com> Fri, 10 Mar 2017 09:45:52 +0100
spl-linux (0.6.5.9-pve8~bpo80) unstable; urgency=medium
* update spl to debian/0.6.5.9-1
-- Proxmox Support Team <support@proxmox.com> Mon, 6 Feb 2017 12:39:35 +0100
spl-linux (0.6.5.8-pve7~bpo80) unstable; urgency=medium
* update spl to debian/0.6.5.8-2
* switch package upstream sources to Debian (Jessie)
-- Proxmox Support Team <support@proxmox.com> Wed, 12 Oct 2016 11:16:02 +0200
spl-linux (0.6.5.7-pve6~bpo80) unstable; urgency=medium
* update pkg-spl to jessie/0.6.5.7-5
* change package versioning to allow upgrades from PVE3/wheezy
-- Proxmox Support Team <support@proxmox.com> Tue, 28 Jun 2016 09:50:00 +0200
spl-linux (0.6.5-pve5~jessie) unstable; urgency=medium
* Update pkg-spl to jessie/0.6.5.6-3
-- Proxmox Support Team <support@proxmox.com> Fri, 15 Apr 2016 11:11:59 +0200
spl-linux (0.6.5-pve4~jessie) unstable; urgency=medium
* update to 0.6.5.6
-- Proxmox Support Team <support@proxmox.com> Wed, 30 Mar 2016 10:49:49 +0200
spl-linux (0.6.5-pve3~jessie) unstable; urgency=medium
* update to 0.6.5.4
-- Proxmox Support Team <support@proxmox.com> Thu, 14 Jan 2016 11:00:40 +0100
spl-linux (0.6.5-pve2~jessie) unstable; urgency=medium
* update to 0.6.5.3
-- Proxmox Support Team <support@proxmox.com> Wed, 04 Nov 2015 17:40:58 +0100
spl-linux (0.6.5-pve1~jessie) unstable; urgency=medium
* update to master/debian/jessie/0.6.5-1
-- Proxmox Support Team <support@proxmox.com> Mon, 21 Sep 2015 10:04:23 +0200
spl-linux (0.6.4-pve3~jessie) unstable; urgency=medium
* update to snapshot/debian/jessie/0.6.4-8-8ac6ff
-- Proxmox Support Team <support@proxmox.com> Mon, 24 Aug 2015 06:14:12 +0200
spl-linux (0.6.4-pve2~jessie) unstable; urgency=medium
* update to 0.6.4.2 (snapshot/debian/jessie/0.6.4-6-37d7cd)
-- Proxmox Support Team <support@proxmox.com> Tue, 21 Jul 2015 11:02:31 +0200
spl-linux (0.6.4-pve1~jessie) unstable; urgency=medium
* update to 0.6.4 (use upstream zol package definitions)
-- Proxmox Support Team <support@proxmox.com> Tue, 14 Apr 2015 10:17:26 +0200
spl-linux (0.6.3-pve1~jessie) unstable; urgency=medium
* recompile for jessie
-- Proxmox Support Team <support@proxmox.com> Sat, 28 Feb 2015 16:03:01 +0100
spl-linux (0.6.3-pve1~wheezy) unstable; urgency=low
* first version for Proxmox VE
-- Proxmox Support Team <support@proxmox.com> Sat, 10 Jan 2015 14:06:34 +0100
Submodule spl-debian deleted from 4a6efb89ab
@@ -1,163 +0,0 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Fabian=20Gr=C3=BCnbichler?= <f.gruenbichler@proxmox.com>
Date: Wed, 12 Oct 2016 10:57:39 +0200
Subject: [PATCH] remove DKMS and module build
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
---
debian/control.in | 24 --------------------
debian/control | 1 -
debian/rules | 68 +------------------------------------------------------
3 files changed, 1 insertion(+), 92 deletions(-)
diff --git a/debian/control.in b/debian/control.in
index b910704..786e689 100644
--- a/debian/control.in
+++ b/debian/control.in
@@ -8,40 +8,16 @@ Build-Depends: autogen,
autotools-dev,
debhelper (>= 9),
dh-autoreconf,
- dkms (>> 2.2.0.2-1~),
libtool
Standards-Version: 4.1.2
Homepage: http://www.zfsonlinux.org/
Vcs-Git: git://anonscm.debian.org/pkg-zfsonlinux/spl.git
Vcs-Browser: http://anonscm.debian.org/gitweb/?p=pkg-zfsonlinux/spl.git
-Package: spl-dkms
-Architecture: all
-Depends: dkms (>> 2.2.1.0), file, libc-dev, libelf-dev, lsb-release, ${misc:Depends}
-Recommends: spl (>= ${source:Upstream-Version})
-Provides: spl-modules
-Description: Solaris Porting Layer kernel modules for Linux
- The Solaris Porting Layer (SPL) is a Linux kernel module which provides
- many of the Solaris kernel APIs. This shim layer makes it possible to
- run Solaris kernel code in the Linux kernel with relatively minimal
- modification. The Solaris Porting LAyer Tests (SPLAT) is a Linux kernel
- module which provides a testing harness for the SPL module.
- .
- SPL can be particularly useful when you want to track upstream Illumos
- (or any other OpenSolaris fork) development closely and don't want the
- overhead of maintaining a large patch which converts Solaris primitives
- to Linux primitives.
- .
- This package contains the source code for the SPL and SPLAT Linux kernel
- modules, which can be used with DKMS, so that local kernel modules are
- automatically built and installed every time the kernel packages are
- upgraded.
-
Package: spl
Architecture: linux-any
Conflicts: spl-dev, splat
Depends: ${misc:Depends}, ${shlibs:Depends}
-Recommends: spl-modules | spl-dkms
Description: Solaris Porting Layer user-space utilities for Linux
The Solaris Porting Layer (SPL) is a Linux kernel module which provides
many of the Solaris kernel APIs. This shim layer makes it possible to
diff --git a/debian/control b/debian/control
index b910704..9ddc12d 100644
--- a/debian/control
+++ b/debian/control
@@ -8,7 +8,6 @@ Build-Depends: autogen,
autotools-dev,
debhelper (>= 9),
dh-autoreconf,
- dkms (>> 2.2.0.2-1~),
libtool
Standards-Version: 4.1.2
Homepage: http://www.zfsonlinux.org/
diff --git a/debian/rules b/debian/rules
index b2fc86c..a474ca4 100755
--- a/debian/rules
+++ b/debian/rules
@@ -14,12 +14,8 @@ ifndef KVERS
KVERS=$(shell uname -r)
endif
-non_epoch_version=$(shell echo $(KVERS) | perl -pe 's/^\d+://')
-PACKAGE=spl
-pmodules = $(PACKAGE)-modules-$(non_epoch_version)
-
%:
- dh $@ --with dkms,autoreconf --parallel
+ dh $@ --with autoreconf --parallel
override_dh_auto_configure:
@cp debian/control.in debian/control
@@ -45,69 +41,7 @@ override_dh_auto_install:
@# This creates the $(CURDIR)/$(NAME)-$(VERSION)/ tree.
$(MAKE) distdir
- @# This shunt allows DKMS to install the Module.symvers and spl_config.h
- @# files to the ${dkms_tree} area through the POST_INSTALL directive.
- echo '#!/bin/sh' >'$(CURDIR)/$(NAME)-$(VERSION)/cp'
- echo 'cp "$$@"' >>'$(CURDIR)/$(NAME)-$(VERSION)/cp'
- chmod 755 '$(CURDIR)/$(NAME)-$(VERSION)/cp'
-
- # Install the DKMS source.
- mkdir -p '$(CURDIR)/debian/tmp/usr/src/'
- mv '$(CURDIR)/$(NAME)-$(VERSION)' '$(CURDIR)/debian/tmp/usr/src/'
-
-override_dh_dkms:
- dh_dkms -V $(VERSION)
-
override_dh_auto_clean:
dh_auto_clean
@if test -e META.orig; then mv META.orig META; fi
cp debian/control.in debian/control
-
-# ------------
-
-override_dh_prep-deb-files:
- for templ in $(wildcard $(CURDIR)/debian/*_KVERS_*.in); do \
- sed -e 's/##KVERS##/$(KVERS)/g ; s/#KVERS#/$(KVERS)/g ; s/_KVERS_/$(KVERS)/g ; s/##KDREV##/$(KDREV)/g ; s/#KDREV#/$(KDREV)/g ; s/_KDREV_/$(KDREV)/g ; s/_ARCH_/$(DEB_HOST_ARCH)/g' \
- < $$templ > `echo $$templ | sed -e 's/_KVERS_/$(KVERS)/g ; s/_ARCH_/$(DEB_HOST_ARCH)/g ; s/\.in$$//'` ; \
- done
- sed -e 's/##KVERS##/$(KVERS)/g ; s/#KVERS#/$(KVERS)/g ; s/_KVERS_/$(KVERS)/g ; s/##KDREV##/$(KDREV)/g ; s/#KDREV#/$(KDREV)/g ; s/_KDREV_/$(KDREV)/g ; s/_ARCH_/$(DEB_HOST_ARCH)/g' \
- < debian/control.modules.in > debian/control
-
-override_dh_configure_modules: override_dh_configure_modules_stamp
-override_dh_configure_modules_stamp:
- ./configure --with-config=kernel --with-linux=$(KSRC) \
- --with-linux-obj=$(KOBJ) \
- --disable-debug-kmem
- touch override_dh_configure_modules_stamp
-
-override_dh_binary-modules-udeb: override_dh_prep-deb-files override_dh_configure_modules
- dh_testdir
- dh_testroot
- dh_prep
-
- $(MAKE) -C $(CURDIR)/module modules
-
- dh_installdirs -p${pmodules}-di
- dh_install -p${pmodules}-di
- dh_gencontrol -p${pmodules}-di
-
- dh_builddeb -p${pmodules}-di
-
-override_dh_binary-modules: override_dh_prep-deb-files override_dh_configure_modules
- dh_testdir
- dh_testroot
- dh_prep
-
- $(MAKE) -C $(CURDIR)/module modules
-
- dh_installdocs -p${pmodules}
- dh_install -p${pmodules}
- dh_installchangelogs -p${pmodules}
- dh_compress -p${pmodules}
- dh_strip -p${pmodules}
- dh_fixperms -p${pmodules}
- dh_installdeb -p${pmodules}
- dh_gencontrol -p${pmodules}
- dh_md5sums -p${pmodules}
-
- dh_builddeb -p${pmodules}
--
2.14.2
@@ -1,143 +0,0 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Tony Hutter <hutter2@llnl.gov>
Date: Thu, 21 Dec 2017 10:56:32 -0800
Subject: [PATCH] Linux 4.15 compat: timer updates
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Use timer_setup() macro and new timeout function definition.
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: Tony Hutter <hutter2@llnl.gov>
Closes #670
Closes #671
(cherry picked from commit 71513af020c0522560dc86668db46b49068787b3)
Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
---
module/spl/spl-taskq.c | 27 +++++++++++++++++++++++++--
config/spl-build.m4 | 34 ++++++++++++++++++++++++++++++++++
2 files changed, 59 insertions(+), 2 deletions(-)
diff --git a/module/spl/spl-taskq.c b/module/spl/spl-taskq.c
index 7cad9f7..89c53a5 100644
--- a/module/spl/spl-taskq.c
+++ b/module/spl/spl-taskq.c
@@ -209,9 +209,9 @@ task_done(taskq_t *tq, taskq_ent_t *t)
* add it to the priority list in order for immediate processing.
*/
static void
-task_expire(unsigned long data)
+task_expire_impl(taskq_ent_t *t)
{
- taskq_ent_t *w, *t = (taskq_ent_t *)data;
+ taskq_ent_t *w;
taskq_t *tq = t->tqent_taskq;
struct list_head *l;
unsigned long flags;
@@ -245,6 +245,21 @@ task_expire(unsigned long data)
wake_up(&tq->tq_work_waitq);
}
+#ifdef HAVE_KERNEL_TIMER_FUNCTION_TIMER_LIST
+static void
+task_expire(struct timer_list *tl)
+{
+ taskq_ent_t *t = from_timer(t, tl, tqent_timer);
+ task_expire_impl(t);
+}
+#else
+static void
+task_expire(unsigned long data)
+{
+ task_expire_impl((taskq_ent_t *)data);
+}
+#endif
+
/*
* Returns the lowest incomplete taskqid_t. The taskqid_t may
* be queued on the pending list, on the priority list, on the
@@ -590,7 +605,9 @@ taskq_dispatch(taskq_t *tq, task_func_t func, void *arg, uint_t flags)
t->tqent_func = func;
t->tqent_arg = arg;
t->tqent_taskq = tq;
+#ifndef HAVE_KERNEL_TIMER_FUNCTION_TIMER_LIST
t->tqent_timer.data = 0;
+#endif
t->tqent_timer.function = NULL;
t->tqent_timer.expires = 0;
t->tqent_birth = jiffies;
@@ -640,7 +657,9 @@ taskq_dispatch_delay(taskq_t *tq, task_func_t func, void *arg,
t->tqent_func = func;
t->tqent_arg = arg;
t->tqent_taskq = tq;
+#ifndef HAVE_KERNEL_TIMER_FUNCTION_TIMER_LIST
t->tqent_timer.data = (unsigned long)t;
+#endif
t->tqent_timer.function = task_expire;
t->tqent_timer.expires = (unsigned long)expire_time;
add_timer(&t->tqent_timer);
@@ -732,7 +751,11 @@ taskq_init_ent(taskq_ent_t *t)
{
spin_lock_init(&t->tqent_lock);
init_waitqueue_head(&t->tqent_waitq);
+#ifdef HAVE_KERNEL_TIMER_FUNCTION_TIMER_LIST
+ timer_setup(&t->tqent_timer, NULL, 0);
+#else
init_timer(&t->tqent_timer);
+#endif
INIT_LIST_HEAD(&t->tqent_list);
t->tqent_id = 0;
t->tqent_func = NULL;
diff --git a/config/spl-build.m4 b/config/spl-build.m4
index accf675..25013b5 100644
--- a/config/spl-build.m4
+++ b/config/spl-build.m4
@@ -56,6 +56,7 @@ AC_DEFUN([SPL_AC_CONFIG_KERNEL], [
SPL_AC_WAIT_QUEUE_HEAD_ENTRY
SPL_AC_KERNEL_WRITE
SPL_AC_KERNEL_READ
+ SPL_AC_KERNEL_TIMER_FUNCTION_TIMER_LIST
])
AC_DEFUN([SPL_AC_MODULE_SYMVERS], [
@@ -1755,3 +1756,36 @@ AC_DEFUN([SPL_AC_KERNEL_READ], [
])
EXTRA_KCFLAGS="$tmp_flags"
])
+
+dnl #
+dnl # 4.15 API change
+dnl # https://lkml.org/lkml/2017/11/25/90
+dnl # Check if timer_list.func get passed a timer_list or an unsigned long
+dnl # (older kernels). Also sanity check the from_timer() and timer_setup()
+dnl # macros are available as well, since they will be used in the same newer
+dnl # kernels that support the new timer_list.func signature.
+dnl #
+AC_DEFUN([SPL_AC_KERNEL_TIMER_FUNCTION_TIMER_LIST], [
+ AC_MSG_CHECKING([whether timer_list.function gets a timer_list])
+ tmp_flags="$EXTRA_KCFLAGS"
+ EXTRA_KCFLAGS="-Werror"
+ SPL_LINUX_TRY_COMPILE([
+ #include <linux/timer.h>
+ void task_expire(struct timer_list *tl) {}
+ ],[
+ #ifndef from_timer
+ #error "No from_timer() macro"
+ #endif
+
+ struct timer_list timer;
+ timer.function = task_expire;
+ timer_setup(&timer, NULL, 0);
+ ],[
+ AC_MSG_RESULT(yes)
+ AC_DEFINE(HAVE_KERNEL_TIMER_FUNCTION_TIMER_LIST, 1,
+ [timer_list.function gets a timer_list])
+ ],[
+ AC_MSG_RESULT(no)
+ ])
+ EXTRA_KCFLAGS="$tmp_flags"
+])
--
2.14.2
@@ -1,65 +0,0 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: LOLi <loli10K@users.noreply.github.com>
Date: Thu, 18 Jan 2018 19:14:18 +0100
Subject: [PATCH] Fix Debian packaging on ARMv7/ARM64
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
When building packages on Debian-based systems specify the target
architecture used by 'alien' to convert .rpm packages into .deb: this
avoids detecting an incorrect value which results in the following
errors:
<package>.aarch64.rpm is for architecture aarch64 ; the package cannot be built on this system
<package>.armv7l.rpm is for architecture armel ; the package cannot be built on this system
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Reviewed-by: George Melikov <mail@gmelikov.ru>
Signed-off-by: loli10K <ezomori.nozomu@gmail.com>
Closes zfsonlinux/zfs#7046
Closes #678
(cherry picked from commit 9ee1fc8b4cb7fdcda88e161d9fc2bbe50427972c)
Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
---
config/deb.am | 9 ++++++---
1 file changed, 6 insertions(+), 3 deletions(-)
diff --git a/config/deb.am b/config/deb.am
index e05a175..f745c91 100644
--- a/config/deb.am
+++ b/config/deb.am
@@ -32,24 +32,27 @@ deb-kmod: deb-local rpm-kmod
name=${PACKAGE}; \
version=${VERSION}-${RELEASE}; \
arch=`$(RPM) -qp $${name}-kmod-$${version}.src.rpm --qf %{arch} | tail -1`; \
+ debarch=`$(DPKG) --print-architecture`; \
pkg1=kmod-$${name}*$${version}.$${arch}.rpm; \
- fakeroot $(ALIEN) --bump=0 --scripts --to-deb $$pkg1; \
+ fakeroot $(ALIEN) --bump=0 --scripts --to-deb --target=$$debarch $$pkg1; \
$(RM) $$pkg1
deb-dkms: deb-local rpm-dkms
name=${PACKAGE}; \
version=${VERSION}-${RELEASE}; \
arch=`$(RPM) -qp $${name}-dkms-$${version}.src.rpm --qf %{arch} | tail -1`; \
+ debarch=`$(DPKG) --print-architecture`; \
pkg1=$${name}-dkms-$${version}.$${arch}.rpm; \
- fakeroot $(ALIEN) --bump=0 --scripts --to-deb $$pkg1; \
+ fakeroot $(ALIEN) --bump=0 --scripts --to-deb --target=$$debarch $$pkg1; \
$(RM) $$pkg1
deb-utils: deb-local rpm-utils
name=${PACKAGE}; \
version=${VERSION}-${RELEASE}; \
arch=`$(RPM) -qp $${name}-$${version}.src.rpm --qf %{arch} | tail -1`; \
+ debarch=`$(DPKG) --print-architecture`; \
pkg1=$${name}-$${version}.$${arch}.rpm; \
- fakeroot $(ALIEN) --bump=0 --scripts --to-deb $$pkg1; \
+ fakeroot $(ALIEN) --bump=0 --scripts --to-deb --target=$$debarch $$pkg1; \
$(RM) $$pkg1
deb: deb-kmod deb-dkms deb-utils
--
2.14.2
-63
View File
@@ -1,63 +0,0 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Tony Hutter <hutter2@llnl.gov>
Date: Thu, 1 Feb 2018 10:02:27 -0800
Subject: [PATCH] Tag spl-0.7.6
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
META file and changelog updated.
Signed-off-by: Tony Hutter <hutter2@llnl.gov>
(cherry picked from commit 3cc0ea2a461788408aa2325e8ecb4e7f209633a8)
Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
---
rpm/generic/spl-kmod.spec.in | 3 +++
rpm/generic/spl.spec.in | 3 +++
META | 2 +-
3 files changed, 7 insertions(+), 1 deletion(-)
diff --git a/rpm/generic/spl-kmod.spec.in b/rpm/generic/spl-kmod.spec.in
index af7132d..eb38c21 100644
--- a/rpm/generic/spl-kmod.spec.in
+++ b/rpm/generic/spl-kmod.spec.in
@@ -167,6 +167,9 @@ chmod u+x ${RPM_BUILD_ROOT}%{kmodinstdir_prefix}/*/extra/*/*/*
rm -rf $RPM_BUILD_ROOT
%changelog
+* Thu Feb 01 2018 Tony Hutter <hutter2@llnl.gov> - 0.7.6-1
+- Released 0.7.6-1, detailed release notes are available at:
+- https://github.com/zfsonlinux/zfs/releases/tag/zfs-0.7.6
* Mon Dec 18 2017 Tony Hutter <hutter2@llnl.gov> - 0.7.5-1
- Released 0.7.5-1, detailed release notes are available at:
- https://github.com/zfsonlinux/zfs/releases/tag/zfs-0.7.5
diff --git a/rpm/generic/spl.spec.in b/rpm/generic/spl.spec.in
index f619475..0338a47 100644
--- a/rpm/generic/spl.spec.in
+++ b/rpm/generic/spl.spec.in
@@ -34,6 +34,9 @@ make install DESTDIR=%{?buildroot}
%{_mandir}/man5/*
%changelog
+* Thu Feb 01 2018 Tony Hutter <hutter2@llnl.gov> - 0.7.6-1
+- Released 0.7.6-1, detailed release notes are available at:
+- https://github.com/zfsonlinux/zfs/releases/tag/zfs-0.7.6
* Mon Dec 18 2017 Tony Hutter <hutter2@llnl.gov> - 0.7.5-1
- Released 0.7.5-1, detailed release notes are available at:
- https://github.com/zfsonlinux/zfs/releases/tag/zfs-0.7.5
diff --git a/META b/META
index c66cd11..4b0c0bb 100644
--- a/META
+++ b/META
@@ -1,7 +1,7 @@
Meta: 1
Name: spl
Branch: 1.0
-Version: 0.7.5
+Version: 0.7.6
Release: 1
Release-Tags: relext
License: GPL
--
2.14.2
-4
View File
@@ -1,4 +0,0 @@
0001-remove-DKMS-and-module-build.patch
0002-Linux-4.15-compat-timer-updates.patch
0003-Fix-Debian-packaging-on-ARMv7-ARM64.patch
0004-Tag-spl-0.7.6.patch
+380
View File
@@ -0,0 +1,380 @@
spl-linux (0.7.13-pve1~bpo2) unstable; urgency=medium
* update SPL to 0.7.13
* base spl-linux on upstream ZOL instead of debian
-- Proxmox Support Team <support@proxmox.com> Fri, 08 Mar 2019 06:53:13 +0100
spl-linux (0.7.12-pve1~bpo1) unstable; urgency=medium
* update SPL to 0.7.12
-- Proxmox Support Team <support@proxmox.com> Wed, 14 Nov 2018 17:51:59 +0100
spl-linux (0.7.11-pve2~bpo1) unstable; urgency=medium
* update SPL to debian/0.7.11
* Backport deadlock fix between mm_sem and tx assign in zfs_write() and page
fault
-- Proxmox Support Team <support@proxmox.com> Mon, 29 Oct 2018 13:47:39 +0100
spl-linux (0.7.11-pve1~bpo1) unstable; urgency=medium
* update SPL to 0.7.11
-- Proxmox Support Team <support@proxmox.com> Mon, 10 Sep 2018 15:47:06 +0200
spl-linux (0.7.9-pve1~bpo9) unstable; urgency=medium
* update SPL to 0.7.9
-- Proxmox Support Team <support@proxmox.com> Fri, 18 May 2018 13:49:09 +0200
spl-linux (0.7.8-pve1~bpo9) unstable; urgency=medium
* update SPL to 0.7.8 (no changes)
-- Proxmox Support Team <support@proxmox.com> Mon, 30 Apr 2018 13:47:22 +0200
spl-linux (0.7.7-pve1~bpo9) unstable; urgency=medium
* update SPL to 0.7.7
-- Proxmox Support Team <support@proxmox.com> Tue, 3 Apr 2018 14:28:35 +0200
spl-linux (0.7.6-pve1~bpo9) unstable; urgency=medium
* update SPL to 0.7.6
-- Proxmox Support Team <support@proxmox.com> Wed, 21 Feb 2018 09:47:54 +0100
spl-linux (0.7.4-pve1~bpo9) unstable; urgency=medium
* update SPL to 0.7.4
-- Proxmox Support Team <support@proxmox.com> Tue, 19 Dec 2017 12:52:42 +0100
spl-linux (0.7.3-pve1~bpo9) unstable; urgency=medium
* update spl to 0.7.3
-- Proxmox Support Team <support@proxmox.com> Mon, 6 Nov 2017 09:14:19 +0100
spl-linux (0.7.2-pve1~bpo90) unstable; urgency=medium
* update spl to 0.7.2
* clean up man pages
-- Proxmox Support Team <support@proxmox.com> Thu, 12 Oct 2017 13:33:04 +0200
spl-linux (0.6.5.11-pve10~bpo90) unstable; urgency=medium
* update spl to debian/0.6.5.11-1
-- Proxmox Support Team <support@proxmox.com> Thu, 27 Jul 2017 13:11:45 +0200
spl-linux (0.6.5.9-pve9~bpo90) unstable; urgency=medium
* rebuild for PVE 5.0 / Debian Stretch
-- Proxmox Support Team <support@proxmox.com> Fri, 10 Mar 2017 09:45:52 +0100
spl-linux (0.6.5.9-pve8~bpo80) unstable; urgency=medium
* update spl to debian/0.6.5.9-1
-- Proxmox Support Team <support@proxmox.com> Mon, 6 Feb 2017 12:39:35 +0100
spl-linux (0.6.5.8-pve7~bpo80) unstable; urgency=medium
* update spl to debian/0.6.5.8-2
* switch package upstream sources to Debian (Jessie)
-- Proxmox Support Team <support@proxmox.com> Wed, 12 Oct 2016 11:16:02 +0200
spl-linux (0.6.5.7-pve6~bpo80) unstable; urgency=medium
* update pkg-spl to jessie/0.6.5.7-5
* change package versioning to allow upgrades from PVE3/wheezy
-- Proxmox Support Team <support@proxmox.com> Tue, 28 Jun 2016 09:50:00 +0200
spl-linux (0.6.5-pve5~jessie) unstable; urgency=medium
* Update pkg-spl to jessie/0.6.5.6-3
-- Proxmox Support Team <support@proxmox.com> Fri, 15 Apr 2016 11:11:59 +0200
spl-linux (0.6.5-pve4~jessie) unstable; urgency=medium
* update to 0.6.5.6
-- Proxmox Support Team <support@proxmox.com> Wed, 30 Mar 2016 10:49:49 +0200
spl-linux (0.6.5-pve3~jessie) unstable; urgency=medium
* update to 0.6.5.4
-- Proxmox Support Team <support@proxmox.com> Thu, 14 Jan 2016 11:00:40 +0100
spl-linux (0.6.5-pve2~jessie) unstable; urgency=medium
* update to 0.6.5.3
-- Proxmox Support Team <support@proxmox.com> Wed, 04 Nov 2015 17:40:58 +0100
spl-linux (0.6.5-pve1~jessie) unstable; urgency=medium
* update to master/debian/jessie/0.6.5-1
-- Proxmox Support Team <support@proxmox.com> Mon, 21 Sep 2015 10:04:23 +0200
spl-linux (0.6.4-pve3~jessie) unstable; urgency=medium
* update to snapshot/debian/jessie/0.6.4-8-8ac6ff
-- Proxmox Support Team <support@proxmox.com> Mon, 24 Aug 2015 06:14:12 +0200
spl-linux (0.6.4-pve2~jessie) unstable; urgency=medium
* update to 0.6.4.2 (snapshot/debian/jessie/0.6.4-6-37d7cd)
-- Proxmox Support Team <support@proxmox.com> Tue, 21 Jul 2015 11:02:31 +0200
spl-linux (0.6.4-pve1~jessie) unstable; urgency=medium
* update to 0.6.4 (use upstream zol package definitions)
-- Proxmox Support Team <support@proxmox.com> Tue, 14 Apr 2015 10:17:26 +0200
spl-linux (0.6.3-pve1~jessie) unstable; urgency=medium
* recompile for jessie
-- Proxmox Support Team <support@proxmox.com> Sat, 28 Feb 2015 16:03:01 +0100
spl-linux (0.6.3-pve1~wheezy) unstable; urgency=low
* first version for Proxmox VE
-- Proxmox Support Team <support@proxmox.com> Sat, 10 Jan 2015 14:06:34 +0100
spl-linux (0.7.12-1) unstable; urgency=medium
* New upstream version 0.7.12
* Bump linux compatibility to 4.19 .
-- Mo Zhou <cdluminate@gmail.com> Mon, 19 Nov 2018 11:25:53 +0000
spl-linux (0.7.11-1) unstable; urgency=medium
[ Nicolas Braud-Santoni ]
* control: Use a canonical URI for Vcs-Git
* copyright: Use HTTPs Format URI in copyright
* debian/rules: Enable build hardening
* debian/rules: Use DEB_VERSION* instead of manually parsing.
[ Mo Zhou ]
* New upstream version 0.7.11 (Closes: #908483)
* Append myself to Uploaders.
* Suggests linux-libc-dev (<< LINUX_NEXT~) instead of (<< LINUX_NEXT).
* Replace get_next.sh with one-liner awk script in rules.
* Bump linux_compat to 4.18 .
* Fix debian-rules-sets-dpkg-architecture-variable.
* Fix debian-watch-uses-insecure-uri.
-- Mo Zhou <cdluminate@gmail.com> Wed, 19 Sep 2018 04:13:01 +0000
spl-linux (0.7.9-3) unstable; urgency=medium
* d/control: migrate to alioth-lists (Closes: #899692)
-- Aron Xu <aron@debian.org> Mon, 28 May 2018 18:05:37 +0800
spl-linux (0.7.9-2) unstable; urgency=medium
[ Aron Xu ]
* New upstream version 0.7.9
* Fix lintian obsolete-relation-form-in-source
* Bump supported linux version to 4.16
[ Antonio Russo ]
* Reduce dependency on spl, and move documentation (Closes: #894608)
-- Aron Xu <aron@debian.org> Wed, 16 May 2018 21:36:17 +0800
spl-linux (0.7.6-1) unstable; urgency=medium
* New upstream release (Closes: #891235)
* Update VCS-* URL to salsa.debian.org
* Apply wrap-and-sort to control*
* Recommends: linux-libc-dev (< ${LINUX_NEXT}):
Tries to prevent unexpected upgrades of kernel that is not known
to be supported by the packaged version of ZFS/SPL.
-- Aron Xu <aron@debian.org> Mon, 26 Feb 2018 16:29:50 +0800
spl-linux (0.7.5-1) unstable; urgency=medium
* Add libelf-dev to Depends (Closes: #886453)
* New upstream version 0.7.5 (Closes: #886453)
-- Aron Xu <aron@debian.org> Fri, 19 Jan 2018 15:23:26 +0800
spl-linux (0.7.4-1) unstable; urgency=medium
* New upstream version 0.7.4 (Closes: #883830)
* Update stdver to 4.1.2, no change required
-- Aron Xu <aron@debian.org> Mon, 18 Dec 2017 22:05:32 +0800
spl-linux (0.7.3-1) unstable; urgency=medium
* New upstream version 0.7.3
-- Aron Xu <aron@debian.org> Tue, 31 Oct 2017 17:29:08 +0800
spl-linux (0.6.5.11-1) unstable; urgency=medium
* Imported Upstream version 0.6.5.11
-- Aron Xu <aron@debian.org> Fri, 14 Jul 2017 14:39:21 +0800
spl-linux (0.6.5.10-1) unstable; urgency=medium
* New upstream version 0.6.5.10
-- Aron Xu <aron@debian.org> Wed, 05 Jul 2017 18:00:58 +0800
spl-linux (0.6.5.9-1) unstable; urgency=medium
* Imported Upstream version 0.6.5.9
-- Aron Xu <aron@debian.org> Mon, 06 Feb 2017 15:52:47 +0800
spl-linux (0.6.5.8-3) unstable; urgency=medium
* Fix Linux 4.9 compatibility (Closes: #851352)
Thanks to Fabian Grünbichler!
-- Aron Xu <aron@debian.org> Tue, 17 Jan 2017 20:57:13 +0800
spl-linux (0.6.5.8-2) unstable; urgency=medium
[ Petter Reinholdtsen ]
* Added d/gbp.conf to enforce the use of pristine-tar.
* Added extra autopkgtest script check.sh from the Ubuntu package.
[ Aron Xu ]
* Make use of dh-autoreconf
* Deal with /etc/hostid in postinst of spl package
* Add lintian-overrides: extra-license-file
* Simplify rules by merging Ubuntu one
* Handle the case /etc/hostid is being wrongly marked as conffile
* Install man pages for spl
* Move command-with-path-in-maintainer-script override to spl
-- Aron Xu <aron@debian.org> Wed, 28 Sep 2016 05:02:06 +0800
spl-linux (0.6.5.8-1) unstable; urgency=medium
[ Petter Reinholdtsen ]
* Fix invalid command in dkms (Closes: #836578)
[ Zhou Mo ]
* control: bump standards version to 3.9.8
[ Aron Xu ]
* Imported Upstream version 0.6.5.8 (Closes: #835992)
* rules: allow parallel building
-- Aron Xu <aron@debian.org> Sun, 18 Sep 2016 01:06:04 +0800
spl-linux (0.6.5.7-1) unstable; urgency=medium
* Imported Upstream version 0.6.5.7
-- Aron Xu <aron@debian.org> Wed, 25 May 2016 12:17:05 +0800
spl-linux (0.6.5.6-2) unstable; urgency=medium
* Add license names to entries missing it.
* Added autopkgtest using code from Ubuntu using dkms >= 2.2.0.3-3~.
-- Petter Reinholdtsen <pere@hungry.com> Thu, 28 Apr 2016 20:21:29 +0800
spl-linux (0.6.5.6-1) unstable; urgency=medium
* New upstream release
-- Aron Xu <aron@debian.org> Thu, 24 Mar 2016 07:14:47 +0800
spl-linux (0.6.5.5-1) unstable; urgency=medium
* New upstream release
-- Aron Xu <aron@debian.org> Sun, 20 Mar 2016 22:50:26 +0800
spl-linux (0.6.5.4-1) unstable; urgency=medium
* New upstream release
-- Aron Xu <aron@debian.org> Sun, 10 Jan 2016 20:13:15 +0800
spl-linux (0.6.5.3-1) unstable; urgency=medium
* New upstream release
-- Aron Xu <aron@debian.org> Thu, 05 Nov 2015 21:08:25 +0800
spl-linux (0.6.5.2-1) unstable; urgency=medium
* Imported Upstream version 0.6.5.2
* Add conflicts to splat (Closes: #769147)
-- Aron Xu <aron@debian.org> Tue, 13 Oct 2015 15:26:33 +0100
spl-linux (0.6.4.2-1) experimental; urgency=medium
* New upstream release.
-- Aron Xu <aron@debian.org> Thu, 13 Aug 2015 19:58:26 +0800
spl-linux (0.6.4.1-1) experimental; urgency=medium
* New upstream release.
-- Aron Xu <aron@debian.org> Sun, 17 May 2015 05:47:51 +0800
spl-linux (0.6.2-2) experimental; urgency=low
* Add file and libc-dev to Depends of spl-dkms (Closes: #717565).
-- Aron Xu <aron@debian.org> Sun, 25 Aug 2013 02:02:15 +0800
spl-linux (0.6.2-1) experimental; urgency=low
* New upstream release.
-- Aron Xu <aron@debian.org> Sat, 24 Aug 2013 14:30:25 +0800
spl-linux (0.6.1-2) experimental; urgency=low
* Add license info for scripts/kmodtool
* Add linux 3.10 compatibility patch from upstream. (Closes: #717565)
* Add facility to build udeb and binary modules, thanks Turbo Fredriksson
for the work.
-- Aron Xu <aron@debian.org> Mon, 29 Jul 2013 16:04:24 +0800
spl-linux (0.6.1-1) experimental; urgency=low
* Initial Release (Closes: #686453)
-- Aron Xu <aron@debian.org> Tue, 02 Apr 2013 01:03:05 +0200
+1
View File
@@ -0,0 +1 @@
10
+32
View File
@@ -0,0 +1,32 @@
Source: spl-linux
Section: kernel
Priority: optional
Maintainer: Proxmox Support Team <support@proxmox.com>
Build-Depends: autogen,
autotools-dev,
debhelper (>= 10~),
dh-autoreconf,
libtool
Standards-Version: 4.1.2
Homepage: http://www.zfsonlinux.org/
Vcs-Git: https://git.proxmox.com/git/zfsonlinux.git
Vcs-Browser: https://git.proxmox.com/?p=zfsonlinux.git;a=summary
Package: spl
Architecture: linux-any
Conflicts: spl-dev, splat
Depends: ${misc:Depends}, ${shlibs:Depends}
Description: Solaris Porting Layer user-space utilities for Linux
The Solaris Porting Layer (SPL) is a Linux kernel module which provides
many of the Solaris kernel APIs. This shim layer makes it possible to
run Solaris kernel code in the Linux kernel with relatively minimal
modification. The Solaris Porting LAyer Tests (SPLAT) is a Linux kernel
module which provides a testing harness for the SPL module.
.
SPL can be particularly useful when you want to track upstream Illumos
(or any other OpenSolaris fork) development closely and don't want the
overhead of maintaining a large patch which converts Solaris primitives
to Linux primitives.
.
This package includes the user space utilities needed to test and debug
the SPL and SPLAT kernel modules.
+189
View File
@@ -0,0 +1,189 @@
Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
Upstream-Name: Solaris Porting Layer for Linux
Upstream-Contact: Brian Behlendorf <behlendorf1@llnl.gov>
Source: https://github.com/zfsonlinux/spl/
Disclaimer:
This work was produced at the Lawrence Livermore National Laboratory
(LLNL) under Contract No. DE-AC52-07NA27344 (Contract 44) between
the U.S. Department of Energy (DOE) and Lawrence Livermore National
Security, LLC (LLNS) for the operation of LLNL.
.
This work was prepared as an account of work sponsored by an agency of
the United States Government. Neither the United States Government nor
Lawrence Livermore National Security, LLC nor any of their employees,
makes any warranty, express or implied, or assumes any liability or
responsibility for the accuracy, completeness, or usefulness of any
information, apparatus, product, or process disclosed, or represents
that its use would not infringe privately-owned rights.
.
Reference herein to any specific commercial products, process, or
services by trade name, trademark, manufacturer or otherwise does
not necessarily constitute or imply its endorsement, recommendation,
or favoring by the United States Government or Lawrence Livermore
National Security, LLC. The views and opinions of authors expressed
herein do not necessarily state or reflect those of the Untied States
Government or Lawrence Livermore National Security, LLC, and shall
not be used for advertising or product endorsement purposes.
Files: *
Copyright: Lawrence Livermore National Security, LLC.
The Regents of the University of California
License: GPL-2+
Files: config/config.guess
Copyright: Free Software Foundation, Inc.
License: GPL-2+
Files: config/config.sub
Copyright: Free Software Foundation, Inc.
License: GPL-2+
Files: config/deb.am
Copyright: Lawrence Livermore National Security, LLC.
License: GPL-2+
Files: config/depcomp
Copyright: Free Software Foundation, Inc.
License: GPL-2+
Files: config/install-sh
Copyright: 1994 X Consortium
License: X11-install-sh
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to
deal in the Software without restriction, including without limitation the
rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
sell copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
.
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC-
TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
.
Except as contained in this notice, the name of the X Consortium shall not
be used in advertising or otherwise to promote the sale, use or other deal-
ings in this Software without prior written authorization from the X Consor-
tium.
Files: config/ltmain.sh
Copyright: Free Software Foundation, Inc.
License: GPL-2+
Files: config/missing
Copyright: Free Software Foundation, Inc.
License: GPL-2+
Files: config/tgz.am
Copyright: Lawrence Livermore National Security, LLC.
License: GPL-2+
Files: debian/*
Copyright: Darik Horn <dajhorn@vanadac.com>
Carlos Alberto Lopez Perez <clopez@igalia.com>
Aron Xu <aron@debian.org>
License: GPL-2+
Files: include/linux/zlib_compat.h
Copyright: Lawrence Livermore National Security, LLC.
License: GPL-2+
Files: include/rpc/xdr.h
Copyright: Sun Microsystems, Inc.
License: GPL-2+
Files: include/sys/extdirent.h
Copyright: Lawrence Livermore National Security, LLC.
License: GPL-2+
Files: include/sys/fcntl.h
Copyright: Lawrence Livermore National Security, LLC.
License: GPL-2+
Files: include/sys/idmap.h
Copyright: Lawrence Livermore National Security, LLC.
License: GPL-2+
Files: include/sys/tsd.h
Copyright: Lawrence Livermore National Security, LLC.
License: GPL-2+
Files: include/sys/zmod.h
Copyright: Jean-loup Gailly
Mark Adler
License: zmod
This software is provided 'as-is', without any express or implied
warranty. In no event will the authors be held liable for any damages
arising from the use of this software.
.
Permission is granted to anyone to use this software for any purpose,
including commercial applications, and to alter it and redistribute it
freely, subject to the following restrictions:
.
1. The origin of this software must not be misrepresented; you must not
claim that you wrote the original software. If you use this software
in a product, an acknowledgment in the product documentation would be
appreciated but is not required.
.
2. Altered source versions must be plainly marked as such, and must not be
misrepresented as being the original software.
.
3. This notice may not be removed or altered from any source distribution.
Files: module/spl/spl-tsd.c
Copyright: Lawrence Livermore National Security, LLC.
License: GPL-2+
Files: module/spl/spl-xdr.c
Copyright: Sun Microsystems, Inc.
License: GPL-2+
Files: module/splat/splat-linux.c
Copyright: Lawrence Livermore National Security, LLC.
License: GPL-2+
Files: scripts/kmodtool
Copyright: 2003-2012 Ville Skyttä <ville.skytta@iki.fi>
Thorsten Leemhuis <fedora@leemhuis.info>
Nicolas Chauvet <kwizart@gmail.com>
License: BSD-like
Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the
"Software"), to deal in the Software without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Software, and to
permit persons to whom the Software is furnished to do so, subject to
the following conditions:
.
The above copyright notice and this permission notice shall be
included in all copies or substantial portions of the Software.
.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
License: GPL-2+
This program is free software; you can redistribute it and/or modify it under
the terms of the GNU General Public License as published by the Free Software
Foundation; either version 2 of the License, or (at your option) any later
version.
.
This program is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
.
You should have received a copy of the GNU General Public License along with
this package; if not, write to the Free Software Foundation, Inc., 51 Franklin
St, Fifth Floor, Boston, MA 02110-1301 USA
.
On Debian systems, the full text of the GNU General Public License version 2
can be found in the file /usr/share/common-licenses/GPL-2.
+33
View File
@@ -0,0 +1,33 @@
#!/usr/bin/make -f
include /usr/share/dpkg/pkg-info.mk
VERSION := $(DEB_VERSION_UPSTREAM)
REVISION := $(shell echo $(DEB_VERSION) | cut -d- -f2)
export DEB_BUILD_MAINT_OPTIONS = hardening=+all
%:
dh $@ --with autoreconf --parallel
override_dh_auto_configure:
@# Embed the downstream version in the module.
@sed \
-e 's/^Version:.*/Version: $(VERSION)/' \
-e 's/^Release:.*/Release: $(REVISION)/' \
-i.orig META
@# Build the userland, but don't build the kernel modules.
dh_auto_configure -- --with-config=user --disable-debug-kmem
override_dh_auto_test:
# scripts/check.sh tries insmod and rmmod, so it cannot
# run in an unprivileged build environment.
override_dh_auto_install:
@# Install the utilities.
$(MAKE) install DESTDIR='$(CURDIR)/debian/tmp'
override_dh_auto_clean:
dh_auto_clean
@if test -e META.orig; then mv META.orig META; fi
+1
View File
@@ -0,0 +1 @@
3.0 (quilt)
+1
View File
@@ -0,0 +1 @@
extend-diff-ignore='.*'
+2
View File
@@ -0,0 +1,2 @@
usr/sbin
usr/share/man/man1/splat.1
+1
View File
@@ -0,0 +1 @@
spl: command-with-path-in-maintainer-script
+49
View File
@@ -0,0 +1,49 @@
#!/bin/sh
set -e
# The hostname and hostid of the last system to access a ZFS pool are stored in
# the ZFS pool itself. A pool is foreign if, during `zpool import`, the
# current hostname and hostid are different than the stored values thereof.
#
# The hostid on Solaris is intrinsic, but is not on Linux (see #595790), so the
# spl kernel module invokes /usr/bin/hostid from the userland in its initialization
# routine.
#
# /usr/bin/hostid will return the 4 first bytes of the file /etc/hostid.
# If this file is not present or contains less than 4 bytes, then /usr/bin/hostid
# will return the bytes of the IP address of $(hostname) flipped, or zero if
# such IP couldn't be obtained
#
# This means that things like a DHCP lease change can affect the hostid.
#
# Therefore the only way of having a stable hostid is to define it on /etc/hostid.
# This postinst helper will check if we already have the hostid stabilized by
# checking the existence of the file /etc/hostid to be 4 bytes at least.
# If this file don't already exists on our system or has less than 4 bytes, then
# we will stabilize our current hostid by writing its value to /etc/hostid
# Detect if /etc/hostid is a conffile of previous spl package, migrate if yes
# hostid file should preserve even when package is purged
if $(dpkg-query --showformat='${Conffiles}\n' --show spl >/dev/null 2>&1); then
dpkg-maintscript-helper rm_conffile /etc/hostid -- "$@"
fi
if [ ! -f /etc/hostid ] || [ $(stat -c %s /etc/hostid) -lt 4 ] ; then
# Write our current hostid to /etc/hostid
HOSTID=$(hostid)
AA=$(echo $HOSTID | cut -b 1,2)
BB=$(echo $HOSTID | cut -b 3,4)
CC=$(echo $HOSTID | cut -b 5,6)
DD=$(echo $HOSTID | cut -b 7,8)
# Big Endian
if [ $(echo -n I | od -to2 | awk 'FNR==1{ print substr($2,6,1)}' 2>/dev/null) = 0 ]; then
# Invoke the printf from coreutils. shell builtin lacks the byte format.
/usr/bin/printf "\x$AA\x$BB\x$CC\x$DD" >/etc/hostid
else
# Little Endian
/usr/bin/printf "\x$DD\x$CC\x$BB\x$AA" >/etc/hostid
fi
fi
#DEBHELPER#
+10
View File
@@ -0,0 +1,10 @@
#!/bin/sh
set -e
# Detect if /etc/hostid is a conffile of previous spl package, migrate if yes
# hostid file should preserve even when package is purged
if $(dpkg-query --showformat='${Conffiles}\n' --show spl >/dev/null 2>&1); then
dpkg-maintscript-helper rm_conffile /etc/hostid -- "$@"
fi
#DEBHELPER#
+10
View File
@@ -0,0 +1,10 @@
#!/bin/sh
set -e
# Detect if /etc/hostid is a conffile of previous spl package, migrate if yes
# hostid file should preserve even when package is purged
if $(dpkg-query --showformat='${Conffiles}\n' --show spl >/dev/null 2>&1); then
dpkg-maintscript-helper rm_conffile /etc/hostid -- "$@"
fi
#DEBHELPER#
+2
View File
@@ -0,0 +1,2 @@
version=3
https://zfsonlinux.org/ .*spl-([\d\.]+)\.tar\.gz$
Submodule
+1
Submodule spl/upstream added at d665632350
-215
View File
@@ -1,215 +0,0 @@
zfs-linux (0.7.6-pve1~bpo9) unstable; urgency=medium
* update ZFS to 0.7.6
-- Proxmox Support Team <support@proxmox.com> Wed, 21 Feb 2018 09:48:29 +0100
zfs-linux (0.7.4-pve2~bpo9) unstable; urgency=medium
* cherry-pick ARC hit rate fix from 0.7.6
* always load ZFS modules on boot
-- Proxmox Support Team <support@proxmox.com> Fri, 19 Jan 2018 11:31:14 +0100
zfs-linux (0.7.4-pve1~bpo9) unstable; urgency=medium
* update ZFS to 0.7.4
-- Proxmox Support Team <support@proxmox.com> Tue, 19 Dec 2017 12:52:42 +0100
zfs-linux (0.7.3-pve1~bpo9) unstable; urgency=medium
* update ZFS to 0.7.3
* include fix for user namespace setgid issue (#6800 upstream)
-- Proxmox Support Team <support@proxmox.com> Mon, 6 Nov 2017 09:14:19 +0100
zfs-linux (0.7.2-pve1~bpo90) unstable; urgency=medium
* update zfs to 0.7.2
* add PR 6616 - zfs send/recv compatibility with 0.6.5
* add PR 6695 - zfs recv: don't skip over objects which should be freed
* various small fixes
* split test suite into zfs-test package
-- Proxmox Support Team <support@proxmox.com> Thu, 12 Oct 2017 13:34:05 +0200
zfs-linux (0.6.5.11-pve18~bpo90) unstable; urgency=medium
* fix #1509: arc_summary error with L2ARC
-- Proxmox Support Team <support@proxmox.com> Mon, 2 Oct 2017 09:30:41 +0200
zfs-linux (0.6.5.11-pve17~bpo90) unstable; urgency=medium
* update zfs to debian/0.6.5.11-1
-- Proxmox Support Team <support@proxmox.com> Thu, 27 Jul 2017 13:11:45 +0200
zfs-linux (0.6.5.9-pve16~bpo90) unstable; urgency=medium
* drop transitional packages
* convert python scripts to python 3, drop .py suffix
* rebuild for PVE 5.0 / Debian Stretch
-- Proxmox Support Team <support@proxmox.com> Fri, 10 Mar 2017 09:45:52 +0100
zfs-linux (0.6.5.9-pve15~bpo80) unstable; urgency=medium
* update zfs to debian/0.6.5.9-1
-- Proxmox Support Team <support@proxmox.com> Mon, 6 Feb 2017 12:39:10 +0100
zfs-linux (0.6.5.8-pve14~bpo80) unstable; urgency=medium
* update zfs to debian/0.6.5.8-3
-- Proxmox Support Team <support@proxmox.com> Wed, 11 Jan 2017 09:34:58 +0100
zfs-linux (0.6.5.8-pve13~bpo80) unstable; urgency=medium
* fix #1184: zfs-share.service has wrong path to 'rm' command
-- Proxmox Support Team <support@proxmox.com> Thu, 27 Oct 2016 11:25:47 +0200
zfs-linux (0.6.5.8-pve12~bpo80) unstable; urgency=medium
* import with "-d /dev/disk/by-id" in systemd service
-- Proxmox Support Team <support@proxmox.com> Mon, 24 Oct 2016 13:48:08 +0200
zfs-linux (0.6.5.8-pve11~bpo80) unstable; urgency=medium
* update zfs to debian/0.6.5.8-1
* switch package upstream sources to Debian (Jessie)
* add transitional packages for upgrades
-- Proxmox Support Team <support@proxmox.com> Wed, 12 Oct 2016 11:16:02 +0200
zfs-linux (0.6.5.7-pve10~bpo80) unstable; urgency=medium
* update to pkg-zfs jessie/0.6.5.7-8
* change package versioning to allow upgrades from PVE3/wheezy
-- Proxmox Support Team <support@proxmox.com> Tue, 28 Jun 2016 09:50:00 +0200
zfs-linux (0.6.5-pve9~jessie) unstable; urgency=medium
* Update to pkg-zfs jessie/0.6.5.6-3
-- Proxmox Support Team <support@proxmox.com> Tue, 12 Apr 2016 09:51:35 +0200
zfs-linux (0.6.5-pve8~jessie) unstable; urgency=medium
* update to zfs-0.6.5.6
-- Proxmox Support Team <support@proxmox.com> Wed, 30 Mar 2016 10:50:22 +0200
zfs-linux (0.6.5-pve7~jessie) unstable; urgency=medium
* update to zfs-0.6.5.4
-- Proxmox Support Team <support@proxmox.com> Thu, 14 Jan 2016 10:51:17 +0100
zfs-linux (0.6.5-pve6~jessie) unstable; urgency=medium
* Prepare to tag zfs-0.6.5.3
-- Proxmox Support Team <support@proxmox.com> Thu, 05 Nov 2015 07:21:44 +0100
zfs-linux (0.6.5-pve5~jessie) unstable; urgency=medium
* Illumos 6267 - dn_bonus evicted too early
* Fix use-after-free in vdev_disk_physio_completion
-- Proxmox Support Team <support@proxmox.com> Wed, 04 Nov 2015 17:42:42 +0100
zfs-linux (0.6.5-pve4~jessie) unstable; urgency=medium
* update to master/debian/jessie/0.6.5.2-2
-- Proxmox Support Team <support@proxmox.com> Mon, 05 Oct 2015 17:56:45 +0200
zfs-linux (0.6.5-pve3~jessie) unstable; urgency=medium
* do not install /etc/init.d/zfs-zed script to avoid double startup
with systemd
-- Proxmox Support Team <support@proxmox.com> Mon, 28 Sep 2015 10:14:40 +0200
zfs-linux (0.6.5-pve2~jessie) unstable; urgency=medium
* update to master/debian/jessie/0.6.5.1-4
-- Proxmox Support Team <support@proxmox.com> Thu, 24 Sep 2015 12:45:33 +0200
zfs-linux (0.6.5-pve1~jessie) unstable; urgency=medium
* update to master/debian/jessie/0.6.5.1-2
-- Proxmox Support Team <support@proxmox.com> Mon, 21 Sep 2015 10:02:41 +0200
zfs-linux (0.6.4-pve3~jessie) unstable; urgency=medium
* update to snapshot/debian/jessie/0.6.4-24-6bec43
-- Proxmox Support Team <support@proxmox.com> Mon, 24 Aug 2015 06:13:44 +0200
zfs-linux (0.6.4-pve2~jessie) unstable; urgency=medium
* update to 0.6.4.2 (snapshot/debian/jessie/0.6.4-21-53b1d9)
-- Proxmox Support Team <support@proxmox.com> Tue, 21 Jul 2015 11:03:21 +0200
zfs-linux (0.6.4-pve1~jessie) unstable; urgency=medium
* update to 0.6.4 (use upstream zol package definitions)
-- Proxmox Support Team <support@proxmox.com> Tue, 14 Apr 2015 10:19:22 +0200
zfs-linux (0.6.3-pve3~jessie) unstable; urgency=medium
* ignore zfs-import-scan errors
-- Proxmox Support Team <support@proxmox.com> Tue, 31 Mar 2015 17:52:40 +0200
zfs-linux (0.6.3-pve2~jessie) unstable; urgency=medium
* use systemd for service startup
* install zed configuration file /etc/zfs/zed.d/zed.rc
-- Proxmox Support Team <support@proxmox.com> Sun, 15 Mar 2015 15:52:54 +0100
zfs-linux (0.6.3-pve1~jessie) unstable; urgency=medium
* recompile on jessie
-- Proxmox Support Team <support@proxmox.com> Sat, 28 Feb 2015 16:02:08 +0100
zfs-linux (0.6.3-2~wheezy) unstable; urgency=low
* use /sbin/modprobe to avoid warning inside initrd
* fix warning about undefined values inside initrd
-- Proxmox Support Team <support@proxmox.com> Wed, 14 Jan 2015 19:03:04 +0100
zfs-linux (0.6.3-1~wheezy) unstable; urgency=low
* first version for Proxmox VE
-- Proxmox Support Team <support@proxmox.com> Sat, 10 Jan 2015 14:06:34 +0100
Submodule zfs-debian deleted from 5601d8209e
@@ -1,275 +0,0 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Fabian=20Gr=C3=BCnbichler?= <f.gruenbichler@proxmox.com>
Date: Mon, 6 Feb 2017 11:03:10 +0100
Subject: [PATCH] remove DKMS, modules and dracut build
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
---
debian/control.in | 37 +++---------------
debian/control | 1 -
debian/not-installed | 1 +
debian/rules | 105 +--------------------------------------------------
4 files changed, 8 insertions(+), 136 deletions(-)
diff --git a/debian/control.in b/debian/control.in
index b3ef99870..8e69b6e37 100644
--- a/debian/control.in
+++ b/debian/control.in
@@ -8,7 +8,6 @@ Uploaders: Aron Xu <aron@debian.org>,
Build-Depends: dh-autoreconf,
autotools-dev,
debhelper (>= 10.2),
- dkms (>> 2.1.1.2-5),
libselinux1-dev,
libtool,
lsb-release,
@@ -84,25 +83,11 @@ Description: OpenZFS pool library for Linux
.
This zpool library provides support for managing zpools.
-Package: zfs-dkms
-Architecture: all
-Pre-Depends: spl-dkms (>= ${source:Upstream-Version}), spl-dkms (<<${source:Upstream-Version}.)
-Depends: dkms (>> 2.1.1.2-5), lsb-release, ${misc:Depends}
-Recommends: zfsutils-linux (>= ${binary:Version}), zfs-zed
-Provides: zfs-modules
-Description: OpenZFS filesystem kernel modules for Linux
- The Z file system is a pooled filesystem designed for maximum data
- integrity, supporting data snapshots, multiple copies, and data
- checksums.
- .
- This DKMS package includes the SPA, DMU, ZVOL, and ZPL components of
- OpenZFS.
-
Package: zfs-initramfs
Architecture: all
Depends: initramfs-tools,
busybox-initramfs | busybox-static | busybox,
- zfs-modules | zfs-dkms, zfsutils-linux (>= ${binary:Version}),
+ zfsutils-linux (>= ${binary:Version}),
${misc:Depends}
Description: OpenZFS root filesystem capabilities for Linux - initramfs
The Z file system is a pooled filesystem designed for maximum data
@@ -112,24 +97,12 @@ Description: OpenZFS root filesystem capabilities for Linux - initramfs
This package adds OpenZFS to the system initramfs with a hook
for the initramfs-tools infrastructure.
-Package: zfs-dracut
-Architecture: all
-Depends: dracut, zfs-modules | zfs-dkms, zfsutils-linux (>= ${binary:Version}), ${misc:Depends}
-Description: OpenZFS root filesystem capabilities for Linux - dracut
- The Z file system is a pooled filesystem designed for maximum data
- integrity, supporting data snapshots, multiple copies, and data
- checksums.
- .
- This package adds OpenZFS to the system initramfs with a hook
- for the dracut infrastructure.
-
Package: zfsutils-linux
Section: contrib/admin
Architecture: linux-any
Depends: ${misc:Depends}, ${shlibs:Depends}, ${python3:Depends}, python3
-Recommends: lsb-base, zfs-modules | zfs-dkms, zfs-zed
-Breaks: zfs-dkms (>> ${binary:Version}), zfs-dkms (<< ${binary:Version})
-Suggests: nfs-kernel-server, samba-common-bin (>= 3.0.23), zfs-initramfs | zfs-dracut
+Recommends: lsb-base, zfs-zed
+Suggests: nfs-kernel-server, samba-common-bin (>= 3.0.23), zfs-initramfs
Conflicts: zfs, zfs-fuse, zutils
Provides: zfsutils
Description: command-line tools to manage OpenZFS filesystems
@@ -143,7 +116,7 @@ Description: command-line tools to manage OpenZFS filesystems
Package: zfs-zed
Section: contrib/admin
Architecture: linux-any
-Depends: ${misc:Depends}, ${shlibs:Depends}, zfs-modules | zfs-dkms, zfsutils-linux (>= ${binary:Version})
+Depends: ${misc:Depends}, ${shlibs:Depends}, zfsutils-linux (>= ${binary:Version})
Description: OpenZFS Event Daemon
The Z file system is a pooled filesystem designed for maximum data
integrity, supporting data snapshots, multiple copies, and data
@@ -154,7 +127,7 @@ Description: OpenZFS Event Daemon
Package: zfs-test
Section: contrib/admin
Architecture: linux-any
-Depends: ${misc:Depends}, ${shlibs:Depends}, zfs-modules | zfs-dkms, zfsutils-linux (>=${binary:Version}), parted, lsscsi, mdadm, bc, ksh, fio, acl, sudo, sysstat, python
+Depends: ${misc:Depends}, ${shlibs:Depends}, zfsutils-linux (>=${binary:Version}), parted, lsscsi, mdadm, bc, ksh, fio, acl, sudo, sysstat, python
Breaks: zfsutils-linux (<= 0.6.5.11-1)
Replaces: zfsutils-linux (<= 0.6.5.11-1)
Description: OpenZFS test infrastructure an support scripts
diff --git a/debian/control b/debian/control
index b3ef99870..816403e44 100644
--- a/debian/control
+++ b/debian/control
@@ -8,7 +8,6 @@ Uploaders: Aron Xu <aron@debian.org>,
Build-Depends: dh-autoreconf,
autotools-dev,
debhelper (>= 10.2),
- dkms (>> 2.1.1.2-5),
libselinux1-dev,
libtool,
lsb-release,
diff --git a/debian/not-installed b/debian/not-installed
index f54fe7310..16b1cef6c 100644
--- a/debian/not-installed
+++ b/debian/not-installed
@@ -5,3 +5,4 @@ etc/zfs/vdev_id.conf.alias.example
etc/zfs/vdev_id.conf.multipath.example
etc/zfs/vdev_id.conf.sas_direct.example
etc/zfs/vdev_id.conf.sas_switch.example
+usr/lib/dracut
diff --git a/debian/rules b/debian/rules
index f445b58c5..d71926b33 100755
--- a/debian/rules
+++ b/debian/rules
@@ -5,9 +5,6 @@ include /usr/share/dpkg/default.mk
LSB_DISTRIBUTOR := $(shell lsb_release -is)
NAME := $(shell awk '$$1 == "Name:" { print $$2; }' META)
-DKMSFILES := module include config zfs.release.in autogen.sh META AUTHORS \
- DISCLAIMER COPYRIGHT OPENSOLARIS.LICENSE README.markdown
-
ifndef BUILD_UDEB
BUILD_UDEB=false
endif
@@ -17,21 +14,16 @@ KVERS=$(shell uname -r)
endif
ifndef SPL
-SPL=/usr/src/spl-$(DEB_VERSION_UPSTREAM)
-endif
-
-ifndef SPLOBJ
-SPLOBJ=/var/lib/dkms/spl/$(DEB_VERSION_UPSTREAM)/$(KVERS)/$(DEB_TARGET_GNU_CPU)
+SPL=../spl-build
endif
non_epoch_version=$(shell echo $(KVERS) | perl -pe 's/^\d+://')
PACKAGE=zfs
-pmodules = $(PACKAGE)-modules-$(non_epoch_version)
export DEB_BUILD_MAINT_OPTIONS = hardening=+all
%:
- dh $@ --with autoreconf,dkms,python3,systemd --parallel
+ dh $@ --with autoreconf,python3,systemd --parallel
override_dh_auto_configure:
@cp debian/control.in debian/control
@@ -73,36 +65,6 @@ override_dh_auto_install:
$(INSTALL) -d '$(CURDIR)/debian/tmp/usr/sbin/'
mv '$(CURDIR)/debian/tmp/sbin/zed' '$(CURDIR)/debian/tmp/usr/sbin/zed'
- @# Get a bare copy of the source code for DKMS.
- @# This creates the $(CURDIR)/$(NAME)-$(DEB_VERSION_UPSTREAM)/ tree, which does not
- @# contain the userland sources. NB: Remove-userland-dist-rules.patch
- $(MAKE) distdir
-
- @# Install the DKMS source.
- @# We only want the files needed to build the modules
- mkdir -p '$(CURDIR)/debian/tmp/usr/src/$(NAME)-$(DEB_VERSION_UPSTREAM)'
- $(foreach file,$(DKMSFILES),mv '$(CURDIR)/$(NAME)-$(DEB_VERSION_UPSTREAM)/$(file)' '$(CURDIR)/debian/tmp/usr/src/$(NAME)-$(DEB_VERSION_UPSTREAM)' || exit 1;)
- @# Hellish awk line:
- @# * Deletes from configure.ac the parts not needed for building the kernel module
- @# * It deletes from inside AC_CONFIG_FILES([]) everything except:
- @# (Makefile$|include/|module/|*.release$)
- @# * Takes care of spaces and tabs
- awk '/^AC_CONFIG_FILES\(\[/,/^\]\)/ { if ($$0 !~ /^(AC_CONFIG_FILES\(\[([ \t]+)?$$|\]\)([ \t]+)?$$|([ \t]+)?(include\/|module\/|Makefile([ \t]+)?$$|zfs\.release([ \t]+)?$$))/){next} } {print}' \
- '$(CURDIR)/$(NAME)-$(DEB_VERSION_UPSTREAM)/configure.ac' > '$(CURDIR)/debian/tmp/usr/src/$(NAME)-$(DEB_VERSION_UPSTREAM)/configure.ac'
- @# Set "SUBDIRS = module include" for CONFIG_KERNEL and remove SUBDIRS for all other configs.
- sed '1,/CONFIG_KERNEL/s/SUBDIRS.*=.*//g;s/SUBDIRS.*=.*/SUBDIRS = module include/g;' \
- '$(CURDIR)/$(NAME)-$(DEB_VERSION_UPSTREAM)/Makefile.am' > '$(CURDIR)/debian/tmp/usr/src/$(NAME)-$(DEB_VERSION_UPSTREAM)/Makefile.am'
- @# Sanity test
- grep -q 'SUBDIRS = module include' '$(CURDIR)/debian/tmp/usr/src/$(NAME)-$(DEB_VERSION_UPSTREAM)/Makefile.am'
- @# Run autogen on the stripped source tree
- cd '$(CURDIR)/debian/tmp/usr/src/$(NAME)-$(DEB_VERSION_UPSTREAM)'; ./autogen.sh
- rm -fr '$(CURDIR)/debian/tmp/usr/src/$(NAME)-$(DEB_VERSION_UPSTREAM)/autom4te.cache'
-
- @# This shunt allows DKMS to install the Module.symvers and zfs_config.h
- @# files to the ${dkms_tree} area through the POST_INSTALL directive.
- printf '#!/bin/sh\ncp "$$@"\n' > '$(CURDIR)/debian/tmp/usr/src/$(NAME)-$(DEB_VERSION_UPSTREAM)/cp'
- chmod 755 '$(CURDIR)/debian/tmp/usr/src/$(NAME)-$(DEB_VERSION_UPSTREAM)/cp'
-
mkdir -p $(CURDIR)/debian/tmp/usr/lib
for i in `ls $(CURDIR)/debian/tmp/lib/*.so`; do \
ln -s /lib/`readlink $${i}` $(CURDIR)/debian/tmp/usr/lib/`basename $${i}`; \
@@ -112,9 +74,6 @@ override_dh_auto_install:
chmod a-x $(CURDIR)/debian/tmp/etc/zfs/zfs-functions
chmod a-x $(CURDIR)/debian/tmp/etc/default/zfs
-override_dh_dkms:
- dh_dkms -V $(DEB_VERSION_UPSTREAM)
-
override_dh_makeshlibs:
dh_makeshlibs -a -V
ifeq ($(BUILD_UDEB), true)
@@ -152,65 +111,5 @@ override_dh_install:
# ------------
-override_dh_prep-deb-files:
- for templ in $(wildcard $(CURDIR)/debian/*_KVERS_*.in); do \
- sed -e 's/##KVERS##/$(KVERS)/g ; s/#KVERS#/$(KVERS)/g ; s/_KVERS_/$(KVERS)/g ; s/##KDREV##/$(KDREV)/g ; s/#KDREV#/$(KDREV)/g ; s/_KDREV_/$(KDREV)/g ; s/_ARCH_/$(DEB_HOST_ARCH)/' \
- < $$templ > `echo $$templ | sed -e 's/_KVERS_/$(KVERS)/g ; s/_ARCH_/$(DEB_HOST_ARCH)/g ; s/\.in$$//'` ; \
- done
- sed -e 's/##KVERS##/$(KVERS)/g ; s/#KVERS#/$(KVERS)/g ; s/_KVERS_/$(KVERS)/g ; s/##KDREV##/$(KDREV)/g ; s/#KDREV#/$(KDREV)/g ; s/_KDREV_/$(KDREV)/g ; s/_ARCH_/$(DEB_HOST_ARCH)/g' \
- < debian/control.modules.in > debian/control
-
-override_dh_configure_modules_udeb: override_dh_configure_modules_udeb_stamp
-override_dh_configure_modules_udeb_stamp:
- ./configure \
- --without-selinux \
- --with-config=kernel \
- --with-linux=$(KSRC) \
- --with-linux-obj=$(KOBJ) \
- --with-spl=$(SPL) \
- --with-spl-obj=$(SPLOBJ)
- touch override_dh_configure_modules_udeb_stamp
-
-override_dh_configure_modules: override_dh_configure_modules_stamp
-override_dh_configure_modules_stamp:
- ./configure \
- --with-config=kernel \
- --with-linux=$(KSRC) \
- --with-linux-obj=$(KOBJ) \
- --with-spl=$(SPL) \
- --with-spl-obj=$(SPLOBJ)
- touch override_dh_configure_modules_stamp
-
-override_dh_binary-modules-udeb: override_dh_prep-deb-files override_dh_configure_modules_udeb
- dh_testdir
- dh_testroot
- dh_prep
-
- $(MAKE) -C $(CURDIR)/module modules
-
- dh_installdirs -p${pmodules}-di
- dh_install -p${pmodules}-di
- dh_gencontrol -p${pmodules}-di
-
- dh_builddeb -p${pmodules}-di
-
-override_dh_binary-modules: override_dh_prep-deb-files override_dh_configure_modules
- dh_testdir
- dh_testroot
- dh_prep
-
- $(MAKE) -C $(CURDIR)/module modules
-
- dh_install -p${pmodules}
- dh_installdocs -p${pmodules}
- dh_installchangelogs -p${pmodules}
- dh_compress -p${pmodules}
- dh_strip -p${pmodules}
- dh_fixperms -p${pmodules}
- dh_installdeb -p${pmodules}
- dh_gencontrol -p${pmodules}
- dh_md5sums -p${pmodules}
- dh_builddeb -p${pmodules}
-
debian-copyright:
cme update dpkg-copyright -file debian/copyright.cme
--
2.14.2
@@ -1,67 +0,0 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Wolfgang Bumiller <w.bumiller@proxmox.com>
Date: Tue, 31 Oct 2017 09:08:42 +0100
Subject: [PATCH] Use user namespaces for FSETID policy check.
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
With this we also need to verify the group id of a file with
the setgid flag has a valid mapping in the current
namespace.
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
---
module/zfs/policy.c | 16 +++++++++++++---
1 file changed, 13 insertions(+), 3 deletions(-)
diff --git a/module/zfs/policy.c b/module/zfs/policy.c
index 03e8f748b..dbbcfefa3 100644
--- a/module/zfs/policy.c
+++ b/module/zfs/policy.c
@@ -42,19 +42,26 @@
* all other cases this function must fail and return the passed err.
*/
static int
-priv_policy(const cred_t *cr, int capability, boolean_t all, int err)
+priv_policy_ns(const cred_t *cr, int capability, boolean_t all, int err,
+ struct user_namespace *ns)
{
ASSERT3S(all, ==, B_FALSE);
if (cr != CRED() && (cr != kcred))
return (err);
- if (!capable(capability))
+ if (!(ns ? ns_capable(ns, capability) : capable(capability)))
return (err);
return (0);
}
+static int
+priv_policy(const cred_t *cr, int capability, boolean_t all, int err)
+{
+ return priv_policy_ns(cr, capability, all, err, NULL);
+}
+
/*
* Checks for operations that are either client-only or are used by
* both clients and servers.
@@ -175,8 +182,11 @@ secpolicy_vnode_setid_retain(const cred_t *cr, boolean_t issuidroot)
int
secpolicy_vnode_setids_setgids(const cred_t *cr, gid_t gid)
{
+ if (!kgid_has_mapping(cr->user_ns, SGID_TO_KGID(gid)))
+ return (EPERM);
if (crgetfsgid(cr) != gid && !groupmember(gid, cr))
- return (priv_policy(cr, CAP_FSETID, B_FALSE, EPERM));
+ return (priv_policy_ns(cr, CAP_FSETID, B_FALSE, EPERM,
+ cr->user_ns));
return (0);
}
--
2.14.2
-151
View File
@@ -1,151 +0,0 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Brian Behlendorf <behlendorf1@llnl.gov>
Date: Mon, 8 Jan 2018 09:52:36 -0800
Subject: [PATCH] Fix ARC hit rate
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
When the compressed ARC feature was added in commit d3c2ae1
the method of reference counting in the ARC was modified. As
part of this accounting change the arc_buf_add_ref() function
was removed entirely.
This would have be fine but the arc_buf_add_ref() function
served a second undocumented purpose of updating the ARC access
information when taking a hold on a dbuf. Without this logic
in place a cached dbuf would not migrate its associated
arc_buf_hdr_t to the MFU list. This would negatively impact
the ARC hit rate, particularly on systems with a small ARC.
This change reinstates the missing call to arc_access() from
dbuf_hold() by implementing a new arc_buf_access() function.
Reviewed-by: Giuseppe Di Natale <dinatale2@llnl.gov>
Reviewed-by: Tony Hutter <hutter2@llnl.gov>
Reviewed-by: Tim Chase <tim@chase2k.com>
Reviewed by: George Wilson <george.wilson@delphix.com>
Reviewed-by: George Melikov <mail@gmelikov.ru>
Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Closes #6171
Closes #6852
Closes #6989
Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
---
include/sys/arc.h | 1 +
module/zfs/arc.c | 54 ++++++++++++++++++++++++++++++++++++++++++++++++++++--
module/zfs/dbuf.c | 4 +++-
3 files changed, 56 insertions(+), 3 deletions(-)
diff --git a/include/sys/arc.h b/include/sys/arc.h
index 66f37cf71..1ea4937bd 100644
--- a/include/sys/arc.h
+++ b/include/sys/arc.h
@@ -221,6 +221,7 @@ void arc_buf_destroy(arc_buf_t *buf, void *tag);
void arc_buf_info(arc_buf_t *buf, arc_buf_info_t *abi, int state_index);
uint64_t arc_buf_size(arc_buf_t *buf);
uint64_t arc_buf_lsize(arc_buf_t *buf);
+void arc_buf_access(arc_buf_t *buf);
void arc_release(arc_buf_t *buf, void *tag);
int arc_released(arc_buf_t *buf);
void arc_buf_sigsegv(int sig, siginfo_t *si, void *unused);
diff --git a/module/zfs/arc.c b/module/zfs/arc.c
index 2b0a78d4b..264e67735 100644
--- a/module/zfs/arc.c
+++ b/module/zfs/arc.c
@@ -429,9 +429,14 @@ typedef struct arc_stats {
* by multiple buffers.
*/
kstat_named_t arcstat_mutex_miss;
+ /*
+ * Number of buffers skipped when updating the access state due to the
+ * header having already been released after acquiring the hash lock.
+ */
+ kstat_named_t arcstat_access_skip;
/*
* Number of buffers skipped because they have I/O in progress, are
- * indrect prefetch buffers that have not lived long enough, or are
+ * indirect prefetch buffers that have not lived long enough, or are
* not from the spa we're trying to evict from.
*/
kstat_named_t arcstat_evict_skip;
@@ -667,6 +672,7 @@ static arc_stats_t arc_stats = {
{ "mfu_ghost_hits", KSTAT_DATA_UINT64 },
{ "deleted", KSTAT_DATA_UINT64 },
{ "mutex_miss", KSTAT_DATA_UINT64 },
+ { "access_skip", KSTAT_DATA_UINT64 },
{ "evict_skip", KSTAT_DATA_UINT64 },
{ "evict_not_enough", KSTAT_DATA_UINT64 },
{ "evict_l2_cached", KSTAT_DATA_UINT64 },
@@ -4926,7 +4932,51 @@ arc_access(arc_buf_hdr_t *hdr, kmutex_t *hash_lock)
}
}
-/* a generic arc_done_func_t which you can use */
+/*
+ * This routine is called by dbuf_hold() to update the arc_access() state
+ * which otherwise would be skipped for entries in the dbuf cache.
+ */
+void
+arc_buf_access(arc_buf_t *buf)
+{
+ mutex_enter(&buf->b_evict_lock);
+ arc_buf_hdr_t *hdr = buf->b_hdr;
+
+ /*
+ * Avoid taking the hash_lock when possible as an optimization.
+ * The header must be checked again under the hash_lock in order
+ * to handle the case where it is concurrently being released.
+ */
+ if (hdr->b_l1hdr.b_state == arc_anon || HDR_EMPTY(hdr)) {
+ mutex_exit(&buf->b_evict_lock);
+ return;
+ }
+
+ kmutex_t *hash_lock = HDR_LOCK(hdr);
+ mutex_enter(hash_lock);
+
+ if (hdr->b_l1hdr.b_state == arc_anon || HDR_EMPTY(hdr)) {
+ mutex_exit(hash_lock);
+ mutex_exit(&buf->b_evict_lock);
+ ARCSTAT_BUMP(arcstat_access_skip);
+ return;
+ }
+
+ mutex_exit(&buf->b_evict_lock);
+
+ ASSERT(hdr->b_l1hdr.b_state == arc_mru ||
+ hdr->b_l1hdr.b_state == arc_mfu);
+
+ DTRACE_PROBE1(arc__hit, arc_buf_hdr_t *, hdr);
+ arc_access(hdr, hash_lock);
+ mutex_exit(hash_lock);
+
+ ARCSTAT_BUMP(arcstat_hits);
+ ARCSTAT_CONDSTAT(!HDR_PREFETCH(hdr), demand, prefetch,
+ !HDR_ISTYPE_METADATA(hdr), data, metadata, hits);
+}
+
+/* a generic arc_read_done_func_t which you can use */
/* ARGSUSED */
void
arc_bcopy_func(zio_t *zio, arc_buf_t *buf, void *arg)
diff --git a/module/zfs/dbuf.c b/module/zfs/dbuf.c
index 60f52d294..4ee121f5a 100644
--- a/module/zfs/dbuf.c
+++ b/module/zfs/dbuf.c
@@ -2719,8 +2719,10 @@ __dbuf_hold_impl(struct dbuf_hold_impl_data *dh)
return (SET_ERROR(ENOENT));
}
- if (dh->dh_db->db_buf != NULL)
+ if (dh->dh_db->db_buf != NULL) {
+ arc_buf_access(dh->dh_db->db_buf);
ASSERT3P(dh->dh_db->db.db_data, ==, dh->dh_db->db_buf->b_data);
+ }
ASSERT(dh->dh_db->db_buf == NULL || arc_referenced(dh->dh_db->db_buf));
--
2.14.2
@@ -1,36 +0,0 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: BtbN <btbn@btbn.de>
Date: Thu, 17 Aug 2017 00:51:51 +0200
Subject: [PATCH] Use /sbin/openrc-run for openrc init scripts
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Using /sbin/runscript is deprecated and throws a QA warning
when still used in init scripts.
Reviewed-by: bunder2015 <omfgbunder@gmail.com>
Signed-off-by: BtbN <btbn@btbn.de>
Closes #6519
(cherry picked from commit 6116bbd7446f06d913415bdecb208a78b31db0af)
Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
---
etc/init.d/Makefile.am | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/etc/init.d/Makefile.am b/etc/init.d/Makefile.am
index 247db0aba..93432386a 100644
--- a/etc/init.d/Makefile.am
+++ b/etc/init.d/Makefile.am
@@ -22,7 +22,7 @@ $(init_SCRIPTS) $(initconf_SCRIPTS) $(initcommon_SCRIPTS):%:%.in
NFS_SRV=nfs; \
fi; \
if [ -e /sbin/openrc-run ]; then \
- SHELL=/sbin/runscript; \
+ SHELL=/sbin/openrc-run; \
else \
SHELL=/bin/sh; \
fi; \
--
2.14.2
@@ -1,209 +0,0 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Gvozden Neskovic <neskovic@gmail.com>
Date: Fri, 4 Aug 2017 11:29:56 +0200
Subject: [PATCH] vdev_mirror: load balancing fixes
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
vdev_queue:
- Track the last position of each vdev, including the io size,
in order to detect linear access of the following zio.
- Remove duplicate `vq_lastoffset`
vdev_mirror:
- Correctly calculate the zio offset (signedness issue)
- Deprecate `vdev_queue_register_lastoffset()`
- Add `VDEV_LABEL_START_SIZE` to zio offset of leaf vdevs
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: Gvozden Neskovic <neskovic@gmail.com>
Closes #6461
(cherry picked from commit 06acbbc429bfe7197e5fc3a49acfeef5c37b64c8)
Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
---
include/sys/vdev.h | 3 +--
include/sys/vdev_impl.h | 1 -
module/zfs/vdev_mirror.c | 36 ++++++++++++++++--------------------
module/zfs/vdev_queue.c | 21 +++++++--------------
4 files changed, 24 insertions(+), 37 deletions(-)
diff --git a/include/sys/vdev.h b/include/sys/vdev.h
index 7157ef43f..473d2691c 100644
--- a/include/sys/vdev.h
+++ b/include/sys/vdev.h
@@ -125,8 +125,7 @@ extern zio_t *vdev_queue_io(zio_t *zio);
extern void vdev_queue_io_done(zio_t *zio);
extern int vdev_queue_length(vdev_t *vd);
-extern uint64_t vdev_queue_lastoffset(vdev_t *vd);
-extern void vdev_queue_register_lastoffset(vdev_t *vd, zio_t *zio);
+extern uint64_t vdev_queue_last_offset(vdev_t *vd);
extern void vdev_config_dirty(vdev_t *vd);
extern void vdev_config_clean(vdev_t *vd);
diff --git a/include/sys/vdev_impl.h b/include/sys/vdev_impl.h
index 7c5e54b08..4c2e3cd2e 100644
--- a/include/sys/vdev_impl.h
+++ b/include/sys/vdev_impl.h
@@ -127,7 +127,6 @@ struct vdev_queue {
hrtime_t vq_io_delta_ts;
zio_t vq_io_search; /* used as local for stack reduction */
kmutex_t vq_lock;
- uint64_t vq_lastoffset;
};
/*
diff --git a/module/zfs/vdev_mirror.c b/module/zfs/vdev_mirror.c
index 0439e4b46..d230b4db4 100644
--- a/module/zfs/vdev_mirror.c
+++ b/module/zfs/vdev_mirror.c
@@ -116,7 +116,8 @@ static const zio_vsd_ops_t vdev_mirror_vsd_ops = {
static int
vdev_mirror_load(mirror_map_t *mm, vdev_t *vd, uint64_t zio_offset)
{
- uint64_t lastoffset;
+ uint64_t last_offset;
+ int64_t offset_diff;
int load;
/* All DVAs have equal weight at the root. */
@@ -129,13 +130,17 @@ vdev_mirror_load(mirror_map_t *mm, vdev_t *vd, uint64_t zio_offset)
* worse overall when resilvering with compared to without.
*/
+ /* Fix zio_offset for leaf vdevs */
+ if (vd->vdev_ops->vdev_op_leaf)
+ zio_offset += VDEV_LABEL_START_SIZE;
+
/* Standard load based on pending queue length. */
load = vdev_queue_length(vd);
- lastoffset = vdev_queue_lastoffset(vd);
+ last_offset = vdev_queue_last_offset(vd);
if (vd->vdev_nonrot) {
/* Non-rotating media. */
- if (lastoffset == zio_offset)
+ if (last_offset == zio_offset)
return (load + zfs_vdev_mirror_non_rotating_inc);
/*
@@ -148,16 +153,16 @@ vdev_mirror_load(mirror_map_t *mm, vdev_t *vd, uint64_t zio_offset)
}
/* Rotating media I/O's which directly follow the last I/O. */
- if (lastoffset == zio_offset)
+ if (last_offset == zio_offset)
return (load + zfs_vdev_mirror_rotating_inc);
/*
* Apply half the seek increment to I/O's within seek offset
- * of the last I/O queued to this vdev as they should incur less
+ * of the last I/O issued to this vdev as they should incur less
* of a seek increment.
*/
- if (ABS(lastoffset - zio_offset) <
- zfs_vdev_mirror_rotating_seek_offset)
+ offset_diff = (int64_t)(last_offset - zio_offset);
+ if (ABS(offset_diff) < zfs_vdev_mirror_rotating_seek_offset)
return (load + (zfs_vdev_mirror_rotating_seek_inc / 2));
/* Apply the full seek increment to all other I/O's. */
@@ -382,29 +387,20 @@ vdev_mirror_child_select(zio_t *zio)
mm->mm_preferred_cnt++;
}
- if (mm->mm_preferred_cnt == 1) {
- vdev_queue_register_lastoffset(
- mm->mm_child[mm->mm_preferred[0]].mc_vd, zio);
+ if (mm->mm_preferred_cnt == 1)
return (mm->mm_preferred[0]);
- }
- if (mm->mm_preferred_cnt > 1) {
- int c = vdev_mirror_preferred_child_randomize(zio);
- vdev_queue_register_lastoffset(mm->mm_child[c].mc_vd, zio);
- return (c);
- }
+ if (mm->mm_preferred_cnt > 1)
+ return (vdev_mirror_preferred_child_randomize(zio));
/*
* Every device is either missing or has this txg in its DTL.
* Look for any child we haven't already tried before giving up.
*/
for (c = 0; c < mm->mm_children; c++) {
- if (!mm->mm_child[c].mc_tried) {
- vdev_queue_register_lastoffset(mm->mm_child[c].mc_vd,
- zio);
+ if (!mm->mm_child[c].mc_tried)
return (c);
- }
}
/*
diff --git a/module/zfs/vdev_queue.c b/module/zfs/vdev_queue.c
index 6b3e87291..40cba340a 100644
--- a/module/zfs/vdev_queue.c
+++ b/module/zfs/vdev_queue.c
@@ -393,7 +393,7 @@ vdev_queue_init(vdev_t *vd)
sizeof (zio_t), offsetof(struct zio, io_queue_node));
}
- vq->vq_lastoffset = 0;
+ vq->vq_last_offset = 0;
}
void
@@ -699,9 +699,8 @@ again:
*/
tree = vdev_queue_class_tree(vq, p);
vq->vq_io_search.io_timestamp = 0;
- vq->vq_io_search.io_offset = vq->vq_last_offset + 1;
- VERIFY3P(avl_find(tree, &vq->vq_io_search,
- &idx), ==, NULL);
+ vq->vq_io_search.io_offset = vq->vq_last_offset - 1;
+ VERIFY3P(avl_find(tree, &vq->vq_io_search, &idx), ==, NULL);
zio = avl_nearest(tree, idx, AVL_AFTER);
if (zio == NULL)
zio = avl_first(tree);
@@ -728,7 +727,7 @@ again:
}
vdev_queue_pending_add(vq, zio);
- vq->vq_last_offset = zio->io_offset;
+ vq->vq_last_offset = zio->io_offset + zio->io_size;
return (zio);
}
@@ -806,7 +805,7 @@ vdev_queue_io_done(zio_t *zio)
}
/*
- * As these three methods are only used for load calculations we're not
+ * As these two methods are only used for load calculations we're not
* concerned if we get an incorrect value on 32bit platforms due to lack of
* vq_lock mutex use here, instead we prefer to keep it lock free for
* performance.
@@ -818,15 +817,9 @@ vdev_queue_length(vdev_t *vd)
}
uint64_t
-vdev_queue_lastoffset(vdev_t *vd)
+vdev_queue_last_offset(vdev_t *vd)
{
- return (vd->vdev_queue.vq_lastoffset);
-}
-
-void
-vdev_queue_register_lastoffset(vdev_t *vd, zio_t *zio)
-{
- vd->vdev_queue.vq_lastoffset = zio->io_offset + zio->io_size;
+ return (vd->vdev_queue.vq_last_offset);
}
#if defined(_KERNEL) && defined(HAVE_SPL)
--
2.14.2
@@ -1,58 +0,0 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Chunwei Chen <tuxoko@gmail.com>
Date: Mon, 21 Aug 2017 13:11:11 -0700
Subject: [PATCH] Fix zfs_ioc_pool_sync should not use fnvlist
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Use fnvlist on user input would allow user to easily panic zfs.
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Reviewed-by: Giuseppe Di Natale <dinatale2@llnl.gov>
Reviewed-by: Alek Pinchuk <apinchuk@datto.com>
Signed-off-by: Chunwei Chen <david.chen@osnexus.com>
Closes #6529
(cherry picked from commit 7192ec7942f233e267bf631b433eb2414dc5f332)
Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
---
module/zfs/zfs_ioctl.c | 12 +++++++++---
1 file changed, 9 insertions(+), 3 deletions(-)
diff --git a/module/zfs/zfs_ioctl.c b/module/zfs/zfs_ioctl.c
index d195eded7..f4f509a7e 100644
--- a/module/zfs/zfs_ioctl.c
+++ b/module/zfs/zfs_ioctl.c
@@ -5901,20 +5901,26 @@ static int
zfs_ioc_pool_sync(const char *pool, nvlist_t *innvl, nvlist_t *onvl)
{
int err;
- boolean_t force;
+ boolean_t force = B_FALSE;
spa_t *spa;
if ((err = spa_open(pool, &spa, FTAG)) != 0)
return (err);
- force = fnvlist_lookup_boolean_value(innvl, "force");
+ if (innvl) {
+ if (nvlist_lookup_boolean_value(innvl, "force", &force) != 0) {
+ err = SET_ERROR(EINVAL);
+ goto out;
+ }
+ }
+
if (force) {
spa_config_enter(spa, SCL_CONFIG, FTAG, RW_WRITER);
vdev_config_dirty(spa->spa_root_vdev);
spa_config_exit(spa, SCL_CONFIG, FTAG);
}
txg_wait_synced(spa_get_dsl(spa), 0);
-
+out:
spa_close(spa, FTAG);
return (err);
--
2.14.2
@@ -1,55 +0,0 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Gvozden Neskovic <neskovic@gmail.com>
Date: Wed, 30 Aug 2017 21:09:18 +0200
Subject: [PATCH] dmu_objset: release bonus buffer in failure path
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Reported by kmemleak during testing of a new patch:
```
unreferenced object 0xffff9f1c12e38800 (size 1024):
comm "z_upgrade", pid 17842, jiffies 4296870904 (age 8746.268s)
backtrace:
kmemleak_alloc+0x7a/0x100
__kmalloc_node+0x26c/0x510
range_tree_create+0x39/0xa0 [zfs]
dmu_zfetch_init+0x73/0xe0 [zfs]
dnode_create+0x12c/0x3b0 [zfs]
dnode_hold_impl+0x1096/0x1130 [zfs]
dnode_hold+0x23/0x30 [zfs]
dmu_bonus_hold_impl+0x6b/0x370 [zfs]
dmu_bonus_hold+0x1e/0x30 [zfs]
dmu_objset_space_upgrade+0x114/0x310 [zfs]
dmu_objset_userobjspace_upgrade_cb+0xd8/0x150 [zfs]
dmu_objset_upgrade_task_cb+0x136/0x1e0 [zfs]
kthread+0x119/0x150
```
Reviewed-by: George Melikov <mail@gmelikov.ru>
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Reviewed-by: Giuseppe Di Natale <dinatale2@llnl.gov>
Signed-off-by: Gvozden Neskovic <neskovic@gmail.com>
Closes #6575
(cherry picked from commit a94447ddf3e8632e1e0476a3b1c985f41a0ae899)
Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
---
module/zfs/dmu_objset.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/module/zfs/dmu_objset.c b/module/zfs/dmu_objset.c
index 9a7a6968d..3425d542f 100644
--- a/module/zfs/dmu_objset.c
+++ b/module/zfs/dmu_objset.c
@@ -1853,6 +1853,7 @@ dmu_objset_space_upgrade(objset_t *os)
dmu_tx_hold_bonus(tx, obj);
objerr = dmu_tx_assign(tx, TXG_WAIT);
if (objerr != 0) {
+ dmu_buf_rele(db, FTAG);
dmu_tx_abort(tx);
continue;
}
--
2.14.2
@@ -1,41 +0,0 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: David Quigley <dpquigl@users.noreply.github.com>
Date: Wed, 13 Sep 2017 12:45:04 -0600
Subject: [PATCH] Fix bug in distclean which removes needed files
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Running distclean removes the following files because of an error
in Makefile.am
deleted: tests/zfs-tests/include/commands.cfg
deleted: tests/zfs-tests/include/libtest.shlib
deleted: tests/zfs-tests/include/math.shlib
deleted: tests/zfs-tests/include/properties.shlib
deleted: tests/zfs-tests/include/zpool_script.shlib
Reviewed-by: George Melikov <mail@gmelikov.ru>
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Reviewed-by: Giuseppe Di Natale <dinatale2@llnl.gov>
Signed-off-by: David Quigley <david.quigley@intel.com>
Closes #6636
(cherry picked from commit 53e5890cff8b7c21d34e1142ae717ae79af54da6)
Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
---
tests/zfs-tests/include/Makefile.am | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/tests/zfs-tests/include/Makefile.am b/tests/zfs-tests/include/Makefile.am
index 579e1356e..24633ccc3 100644
--- a/tests/zfs-tests/include/Makefile.am
+++ b/tests/zfs-tests/include/Makefile.am
@@ -10,4 +10,4 @@ dist_pkgdata_SCRIPTS = \
EXTRA_DIST=default.cfg.in
distclean-local::
- -$(RM) $(dist_pkgdata_SCRIPTS)
+ -$(RM) default.cfg
--
2.14.2
@@ -1,98 +0,0 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: "Scot W. Stevenson" <scot.stevenson@gmail.com>
Date: Wed, 25 Oct 2017 08:29:02 +0200
Subject: [PATCH] Rewrite of function fBytes() in arc_summary.py
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Replace if-elif-else construction with shorter loop;
remove unused parameter "Decimal"; centralize format
string; add function documentation string; conform to
PEP8.
Reviewed-by: Giuseppe Di Natale <dinatale2@llnl.gov>
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: Scot W. Stevenson <scot.stevenson@gmail.com>
Closes #6784
(cherry picked from commit 5dc25de668ce8c4e43ebd8c589202392297699b9)
Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
---
cmd/arc_summary/arc_summary.py | 60 ++++++++++++++++++++++--------------------
1 file changed, 31 insertions(+), 29 deletions(-)
diff --git a/cmd/arc_summary/arc_summary.py b/cmd/arc_summary/arc_summary.py
index 93918a08f..e19278cef 100755
--- a/cmd/arc_summary/arc_summary.py
+++ b/cmd/arc_summary/arc_summary.py
@@ -88,36 +88,38 @@ def div2():
sys.stdout.write("\n")
-def fBytes(Bytes=0, Decimal=2):
- kbytes = (2 ** 10)
- mbytes = (2 ** 20)
- gbytes = (2 ** 30)
- tbytes = (2 ** 40)
- pbytes = (2 ** 50)
- ebytes = (2 ** 60)
- zbytes = (2 ** 70)
- ybytes = (2 ** 80)
-
- if Bytes >= ybytes:
- return str("%0." + str(Decimal) + "f") % (Bytes / ybytes) + "\tYiB"
- elif Bytes >= zbytes:
- return str("%0." + str(Decimal) + "f") % (Bytes / zbytes) + "\tZiB"
- elif Bytes >= ebytes:
- return str("%0." + str(Decimal) + "f") % (Bytes / ebytes) + "\tEiB"
- elif Bytes >= pbytes:
- return str("%0." + str(Decimal) + "f") % (Bytes / pbytes) + "\tPiB"
- elif Bytes >= tbytes:
- return str("%0." + str(Decimal) + "f") % (Bytes / tbytes) + "\tTiB"
- elif Bytes >= gbytes:
- return str("%0." + str(Decimal) + "f") % (Bytes / gbytes) + "\tGiB"
- elif Bytes >= mbytes:
- return str("%0." + str(Decimal) + "f") % (Bytes / mbytes) + "\tMiB"
- elif Bytes >= kbytes:
- return str("%0." + str(Decimal) + "f") % (Bytes / kbytes) + "\tKiB"
- elif Bytes == 0:
- return str("%d" % 0) + "\tBytes"
+def fBytes(b=0):
+ """Return human-readable representation of a byte value in
+ powers of 2 (eg "KiB" for "kibibytes", etc) to two decimal
+ points. Values smaller than one KiB are returned without
+ decimal points.
+ """
+
+ prefixes = [
+ [2**80, "YiB"], # yobibytes (yotta)
+ [2**70, "ZiB"], # zebibytes (zetta)
+ [2**60, "EiB"], # exbibytes (exa)
+ [2**50, "PiB"], # pebibytes (peta)
+ [2**40, "TiB"], # tebibytes (tera)
+ [2**30, "GiB"], # gibibytes (giga)
+ [2**20, "MiB"], # mebibytes (mega)
+ [2**10, "KiB"]] # kibibytes (kilo)
+
+ if b >= 2**10:
+
+ for limit, unit in prefixes:
+
+ if b >= limit:
+ value = b / limit
+ break
+
+ result = "%0.2f\t%s" % (value, unit)
+
else:
- return str("%d" % Bytes) + "\tBytes"
+
+ result = "%d\tBytes" % b
+
+ return result
def fHits(Hits=0, Decimal=2):
--
2.14.2
@@ -1,84 +0,0 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: "Scot W. Stevenson" <scot.stevenson@gmail.com>
Date: Fri, 3 Nov 2017 23:43:53 +0100
Subject: [PATCH] Minor code cleanup in arc_summary.py
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Simplify and inline single-use function div1(); inline twice-used
function div2(); add function comment to zfs_header(); replace
variable "unused" in get_Kstat() with "_" following convention.
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Reviewed-by: George Melikov <mail@gmelikov.ru>
Reviewed-by: Giuseppe Di Natale <dinatale2@llnl.gov>
Signed-off-by: Scot W. Stevenson <scot.stevenson@gmail.com>
Closes #6802
(cherry picked from commit 03f638a8efe4f8e5901fc0e07fad5604e2550f22)
Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
---
cmd/arc_summary/arc_summary.py | 25 ++++++++-----------------
1 file changed, 8 insertions(+), 17 deletions(-)
diff --git a/cmd/arc_summary/arc_summary.py b/cmd/arc_summary/arc_summary.py
index e19278cef..6b818edc7 100755
--- a/cmd/arc_summary/arc_summary.py
+++ b/cmd/arc_summary/arc_summary.py
@@ -63,7 +63,7 @@ def get_Kstat():
del kstats[0:2]
for kstat in kstats:
kstat = kstat.strip()
- name, unused, value = kstat.split()
+ name, _, value = kstat.split()
Kstat[namespace + name] = D(value)
Kstat = {}
@@ -77,17 +77,6 @@ def get_Kstat():
return Kstat
-def div1():
- sys.stdout.write("\n")
- for i in range(18):
- sys.stdout.write("%s" % "----")
- sys.stdout.write("\n")
-
-
-def div2():
- sys.stdout.write("\n")
-
-
def fBytes(b=0):
"""Return human-readable representation of a byte value in
powers of 2 (eg "KiB" for "kibibytes", etc) to two decimal
@@ -908,11 +897,13 @@ unSub = [
def zfs_header():
- daydate = time.strftime("%a %b %d %H:%M:%S %Y")
+ """Print title string with date
+ """
+ daydate = time.strftime('%a %b %d %H:%M:%S %Y')
- div1()
- sys.stdout.write("ZFS Subsystem Report\t\t\t\t%s" % daydate)
- div2()
+ sys.stdout.write('\n'+'-'*72+'\n')
+ sys.stdout.write('ZFS Subsystem Report\t\t\t\t%s' % daydate)
+ sys.stdout.write('\n')
def usage():
@@ -975,7 +966,7 @@ def main():
zfs_header()
for page in pages:
page(Kstat)
- div2()
+ sys.stdout.write("\n")
if __name__ == '__main__':
--
2.14.2
@@ -1,101 +0,0 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: "Scot W. Stevenson" <scot.stevenson@gmail.com>
Date: Sat, 4 Nov 2017 21:33:28 +0100
Subject: [PATCH] Rewrite fHits() in arc_summary.py with SI units
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Complete rewrite of fHits(). Move units from non-standard English
abbreviations to SI units, thereby avoiding confusion because of
"long scale" and "short scale" numbers. Remove unused parameter
"Decimal". Add function string. Aim to confirm to PEP8.
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Reviewed-by: George Melikov <mail@gmelikov.ru>
Reviewed-by: Giuseppe Di Natale <dinatale2@llnl.gov>
Signed-off-by: Scot W. Stevenson <scot.stevenson@gmail.com>
Closes #6815
(cherry picked from commit 88e4e0d5dd1800add5191633d65797ce1c2eb4cf)
Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
---
cmd/arc_summary/arc_summary.py | 62 ++++++++++++++++++++++--------------------
1 file changed, 33 insertions(+), 29 deletions(-)
diff --git a/cmd/arc_summary/arc_summary.py b/cmd/arc_summary/arc_summary.py
index 6b818edc7..cbb7d20bc 100755
--- a/cmd/arc_summary/arc_summary.py
+++ b/cmd/arc_summary/arc_summary.py
@@ -111,36 +111,40 @@ def fBytes(b=0):
return result
-def fHits(Hits=0, Decimal=2):
- khits = (10 ** 3)
- mhits = (10 ** 6)
- bhits = (10 ** 9)
- thits = (10 ** 12)
- qhits = (10 ** 15)
- Qhits = (10 ** 18)
- shits = (10 ** 21)
- Shits = (10 ** 24)
-
- if Hits >= Shits:
- return str("%0." + str(Decimal) + "f") % (Hits / Shits) + "S"
- elif Hits >= shits:
- return str("%0." + str(Decimal) + "f") % (Hits / shits) + "s"
- elif Hits >= Qhits:
- return str("%0." + str(Decimal) + "f") % (Hits / Qhits) + "Q"
- elif Hits >= qhits:
- return str("%0." + str(Decimal) + "f") % (Hits / qhits) + "q"
- elif Hits >= thits:
- return str("%0." + str(Decimal) + "f") % (Hits / thits) + "t"
- elif Hits >= bhits:
- return str("%0." + str(Decimal) + "f") % (Hits / bhits) + "b"
- elif Hits >= mhits:
- return str("%0." + str(Decimal) + "f") % (Hits / mhits) + "m"
- elif Hits >= khits:
- return str("%0." + str(Decimal) + "f") % (Hits / khits) + "k"
- elif Hits == 0:
- return str("%d" % 0)
+def fHits(hits=0):
+ """Create a human-readable representation of the number of hits.
+ The single-letter symbols used are SI to avoid the confusion caused
+ by the different "short scale" and "long scale" representations in
+ English, which use the same words for different values. See
+ https://en.wikipedia.org/wiki/Names_of_large_numbers and
+ https://physics.nist.gov/cuu/Units/prefixes.html
+ """
+
+ numbers = [
+ [10**24, 'Y'], # yotta (septillion)
+ [10**21, 'Z'], # zetta (sextillion)
+ [10**18, 'E'], # exa (quintrillion)
+ [10**15, 'P'], # peta (quadrillion)
+ [10**12, 'T'], # tera (trillion)
+ [10**9, 'G'], # giga (billion)
+ [10**6, 'M'], # mega (million)
+ [10**3, 'k']] # kilo (thousand)
+
+ if hits >= 1000:
+
+ for limit, symbol in numbers:
+
+ if hits >= limit:
+ value = hits/limit
+ break
+
+ result = "%0.2f%s" % (value, symbol)
+
else:
- return str("%d" % Hits)
+
+ result = "%d" % hits
+
+ return result
def fPerc(lVal=0, rVal=0, Decimal=2):
--
2.14.2
@@ -1,213 +0,0 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: "Scot W. Stevenson" <scot.stevenson@gmail.com>
Date: Sun, 5 Nov 2017 22:11:37 +0100
Subject: [PATCH] Add documentation strings to arc_summary.py
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Include docstrings (PEP8, PEP257) for module and all functions.
Separately, remove outdated section in comment at start of
module. Separately, remove unused global constant "usetunable".
Reviewed-by: George Melikov <mail@gmelikov.ru>
Reviewed-by: Giuseppe Di Natale <dinatale2@llnl.gov>
Signed-off-by: Scot W. Stevenson <scot.stevenson@gmail.com>
Closes #6818
(cherry picked from commit 03955e348803a942048db8b32827f7ff6715c02e)
Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
---
cmd/arc_summary/arc_summary.py | 56 +++++++++++++++++++++++++++++++-----------
1 file changed, 42 insertions(+), 14 deletions(-)
diff --git a/cmd/arc_summary/arc_summary.py b/cmd/arc_summary/arc_summary.py
index cbb7d20bc..f4968fb6a 100755
--- a/cmd/arc_summary/arc_summary.py
+++ b/cmd/arc_summary/arc_summary.py
@@ -31,34 +31,37 @@
#
# If you are having troubles when using this script from cron(8) please try
# adjusting your PATH before reporting problems.
-#
-# /usr/bin & /sbin
-#
-# Binaries used are:
-#
-# dc(1), kldstat(8), sed(1), sysctl(8) & vmstat(8)
-#
-# Binaries that I am working on phasing out are:
-#
-# dc(1) & sed(1)
+"""Print statistics on the ZFS Adjustable Replacement Cache (ARC)
+
+Provides basic information on the ARC, its efficiency, the L2ARC (if present),
+the Data Management Unit (DMU), Virtual Devices (VDEVs), and tunables. See the
+in-source documentation and code at
+https://github.com/zfsonlinux/zfs/blob/master/module/zfs/arc.c for details.
+"""
import sys
import time
import getopt
import re
+
from os import listdir
from subprocess import Popen, PIPE
from decimal import Decimal as D
-
-usetunable = True
show_tunable_descriptions = False
alternate_tunable_layout = False
kstat_pobj = re.compile("^([^:]+):\s+(.+)\s*$", flags=re.M)
def get_Kstat():
+ """Collect information on the ZFS subsystem from the /proc virtual
+ file system. The name "kstat" is a holdover from the Solaris utility
+ of the same name.
+ """
+
def load_proc_kstats(fn, namespace):
+ """Collect information on a specific subsystem of the ARC"""
+
kstats = [line.strip() for line in open(fn)]
del kstats[0:2]
for kstat in kstats:
@@ -148,6 +151,8 @@ def fHits(hits=0):
def fPerc(lVal=0, rVal=0, Decimal=2):
+ """Calculate percentage value and return in human-readable format"""
+
if rVal > 0:
return str("%0." + str(Decimal) + "f") % (100 * (lVal / rVal)) + "%"
else:
@@ -155,6 +160,7 @@ def fPerc(lVal=0, rVal=0, Decimal=2):
def get_arc_summary(Kstat):
+ """Collect general data on the ARC"""
output = {}
memory_throttle_count = Kstat[
@@ -256,6 +262,8 @@ def get_arc_summary(Kstat):
def _arc_summary(Kstat):
+ """Print information on the ARC"""
+
# ARC Sizing
arc = get_arc_summary(Kstat)
@@ -330,6 +338,8 @@ def _arc_summary(Kstat):
def get_arc_efficiency(Kstat):
+ """Collect information on the efficiency of the ARC"""
+
output = {}
arc_hits = Kstat["kstat.zfs.misc.arcstats.hits"]
@@ -453,6 +463,8 @@ def get_arc_efficiency(Kstat):
def _arc_efficiency(Kstat):
+ """Print information on the efficiency of the ARC"""
+
arc = get_arc_efficiency(Kstat)
sys.stdout.write("ARC Total accesses:\t\t\t\t\t%s\n" %
@@ -563,6 +575,8 @@ def _arc_efficiency(Kstat):
def get_l2arc_summary(Kstat):
+ """Collection information on the L2ARC"""
+
output = {}
l2_abort_lowmem = Kstat["kstat.zfs.misc.arcstats.l2_abort_lowmem"]
@@ -657,6 +671,7 @@ def get_l2arc_summary(Kstat):
def _l2arc_summary(Kstat):
+ """Print information on the L2ARC"""
arc = get_l2arc_summary(Kstat)
@@ -741,6 +756,8 @@ def _l2arc_summary(Kstat):
def get_dmu_summary(Kstat):
+ """Collect information on the DMU"""
+
output = {}
zfetch_hits = Kstat["kstat.zfs.misc.zfetchstats.hits"]
@@ -766,6 +783,7 @@ def get_dmu_summary(Kstat):
def _dmu_summary(Kstat):
+ """Print information on the DMU"""
arc = get_dmu_summary(Kstat)
@@ -787,6 +805,8 @@ def _dmu_summary(Kstat):
def get_vdev_summary(Kstat):
+ """Collect information on the VDEVs"""
+
output = {}
vdev_cache_delegations = \
@@ -817,6 +837,8 @@ def get_vdev_summary(Kstat):
def _vdev_summary(Kstat):
+ """Print information on the VDEVs"""
+
arc = get_vdev_summary(Kstat)
if arc['vdev_cache_total'] > 0:
@@ -836,6 +858,8 @@ def _vdev_summary(Kstat):
def _tunable_summary(Kstat):
+ """Print information on tunables"""
+
global show_tunable_descriptions
global alternate_tunable_layout
@@ -901,8 +925,8 @@ unSub = [
def zfs_header():
- """Print title string with date
- """
+ """Print title string with date"""
+
daydate = time.strftime('%a %b %d %H:%M:%S %Y')
sys.stdout.write('\n'+'-'*72+'\n')
@@ -911,6 +935,8 @@ def zfs_header():
def usage():
+ """Print usage information"""
+
sys.stdout.write("Usage: arc_summary.py [-h] [-a] [-d] [-p PAGE]\n\n")
sys.stdout.write("\t -h, --help : "
"Print this help message and exit\n")
@@ -931,6 +957,8 @@ def usage():
def main():
+ """Main function"""
+
global show_tunable_descriptions
global alternate_tunable_layout
--
2.14.2
@@ -1,51 +0,0 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: "Scot W. Stevenson" <scot.stevenson@gmail.com>
Date: Tue, 7 Nov 2017 23:50:15 +0100
Subject: [PATCH] Sort output of tunables in arc_summary.py
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Sort list of tunables printed by _tunable_summary()
alphabetically
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Reviewed-by: Giuseppe Di Natale <dinatale2@llnl.gov>
Signed-off-by: Scot W. Stevenson <scot.stevenson@gmail.com>
Closes #6828
(cherry picked from commit 904c03672beeadf4c74b919f55b5f78be882b7f8)
Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
---
cmd/arc_summary/arc_summary.py | 12 ++++++++----
1 file changed, 8 insertions(+), 4 deletions(-)
diff --git a/cmd/arc_summary/arc_summary.py b/cmd/arc_summary/arc_summary.py
index f4968fb6a..4c513d63d 100755
--- a/cmd/arc_summary/arc_summary.py
+++ b/cmd/arc_summary/arc_summary.py
@@ -900,14 +900,18 @@ def _tunable_summary(Kstat):
sys.stderr.write("Tunable descriptions will be disabled.\n")
sys.stdout.write("ZFS Tunable:\n")
+ names.sort()
+
+ if alternate_tunable_layout:
+ format = "\t%s=%s\n"
+ else:
+ format = "\t%-50s%s\n"
+
for name in names:
+
if not name:
continue
- format = "\t%-50s%s\n"
- if alternate_tunable_layout:
- format = "\t%s=%s\n"
-
if show_tunable_descriptions and name in descriptions:
sys.stdout.write("\t# %s\n" % descriptions[name])
--
2.14.2
@@ -1,93 +0,0 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: "Scot W. Stevenson" <scot.stevenson@gmail.com>
Date: Sun, 12 Nov 2017 05:27:43 +0100
Subject: [PATCH] Fix arc_summary.py -d crash with Python3
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Prevents arc_summary.py crashing when called with parameter -d or
long form --description with Python3.
Reviewed-by: George Melikov <mail@gmelikov.ru>
Reviewed-by: Giuseppe Di Natale <dinatale2@llnl.gov>
Signed-off-by: Scot W. Stevenson <scot.stevenson@gmail.com>
Closes #6849
Closes #6850
(cherry picked from commit 7de8fb33a206fabb06261c0a5b79656d66efb32f)
Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
---
cmd/arc_summary/arc_summary.py | 24 ++++++++++++++++--------
1 file changed, 16 insertions(+), 8 deletions(-)
diff --git a/cmd/arc_summary/arc_summary.py b/cmd/arc_summary/arc_summary.py
index 4c513d63d..ec0468ecc 100755
--- a/cmd/arc_summary/arc_summary.py
+++ b/cmd/arc_summary/arc_summary.py
@@ -39,12 +39,12 @@ in-source documentation and code at
https://github.com/zfsonlinux/zfs/blob/master/module/zfs/arc.c for details.
"""
-import sys
-import time
import getopt
+import os
import re
+import sys
+import time
-from os import listdir
from subprocess import Popen, PIPE
from decimal import Decimal as D
@@ -858,12 +858,12 @@ def _vdev_summary(Kstat):
def _tunable_summary(Kstat):
- """Print information on tunables"""
+ """Print information on tunables, including descriptions if requested"""
global show_tunable_descriptions
global alternate_tunable_layout
- names = listdir("/sys/module/zfs/parameters/")
+ names = os.listdir("/sys/module/zfs/parameters/")
values = {}
for name in names:
@@ -874,13 +874,21 @@ def _tunable_summary(Kstat):
descriptions = {}
if show_tunable_descriptions:
+
+ command = ["/sbin/modinfo", "zfs", "-0"]
+
try:
- command = ["/sbin/modinfo", "zfs", "-0"]
p = Popen(command, stdin=PIPE, stdout=PIPE,
stderr=PIPE, shell=False, close_fds=True)
p.wait()
- description_list = p.communicate()[0].strip().split('\0')
+ # By default, Python 2 returns a string as the first element of the
+ # tuple from p.communicate(), while Python 3 returns bytes which
+ # must be decoded first. The better way to do this would be with
+ # subprocess.run() or at least .check_output(), but this fails on
+ # CentOS 6 because of its old version of Python 2
+ desc = bytes.decode(p.communicate()[0])
+ description_list = desc.strip().split('\0')
if p.returncode == 0:
for tunable in description_list:
@@ -899,7 +907,7 @@ def _tunable_summary(Kstat):
(sys.argv[0], command[0], e.strerror))
sys.stderr.write("Tunable descriptions will be disabled.\n")
- sys.stdout.write("ZFS Tunable:\n")
+ sys.stdout.write("ZFS Tunables:\n")
names.sort()
if alternate_tunable_layout:
--
2.14.2
@@ -1,78 +0,0 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: "Scot W. Stevenson" <scot.stevenson@gmail.com>
Date: Wed, 15 Nov 2017 19:28:11 +0100
Subject: [PATCH] Minor code cleanups in arc_python.py
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Remove unused library re and associated variable kstat_pobj. Add note
to documentation at start of program about required support for old
versions of Python. Change variable "format" (which is a built-in
function) to "fmt".
Reviewed-by: George Melikov <mail@gmelikov.ru>
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: Scot W. Stevenson <scot.stevenson@gmail.com>
Closes #6869
(cherry picked from commit d486dee89e54560536a759f3c5fb1eb8b07efc3f)
Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
---
cmd/arc_summary/arc_summary.py | 12 +++++++-----
1 file changed, 7 insertions(+), 5 deletions(-)
diff --git a/cmd/arc_summary/arc_summary.py b/cmd/arc_summary/arc_summary.py
index ec0468ecc..c9a2c5d03 100755
--- a/cmd/arc_summary/arc_summary.py
+++ b/cmd/arc_summary/arc_summary.py
@@ -31,6 +31,10 @@
#
# If you are having troubles when using this script from cron(8) please try
# adjusting your PATH before reporting problems.
+#
+# Note some of this code uses older code (eg getopt instead of argparse,
+# subprocess.Popen() instead of subprocess.run()) because we need to support
+# some very old versions of Python.
"""Print statistics on the ZFS Adjustable Replacement Cache (ARC)
Provides basic information on the ARC, its efficiency, the L2ARC (if present),
@@ -41,7 +45,6 @@ https://github.com/zfsonlinux/zfs/blob/master/module/zfs/arc.c for details.
import getopt
import os
-import re
import sys
import time
@@ -50,7 +53,6 @@ from decimal import Decimal as D
show_tunable_descriptions = False
alternate_tunable_layout = False
-kstat_pobj = re.compile("^([^:]+):\s+(.+)\s*$", flags=re.M)
def get_Kstat():
@@ -911,9 +913,9 @@ def _tunable_summary(Kstat):
names.sort()
if alternate_tunable_layout:
- format = "\t%s=%s\n"
+ fmt = "\t%s=%s\n"
else:
- format = "\t%-50s%s\n"
+ fmt = "\t%-50s%s\n"
for name in names:
@@ -923,7 +925,7 @@ def _tunable_summary(Kstat):
if show_tunable_descriptions and name in descriptions:
sys.stdout.write("\t# %s\n" % descriptions[name])
- sys.stdout.write(format % (name, values[name]))
+ sys.stdout.write(fmt % (name, values[name]))
unSub = [
--
2.14.2
@@ -1,55 +0,0 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: "Scot W. Stevenson" <scot.stevenson@gmail.com>
Date: Sat, 18 Nov 2017 23:07:04 +0100
Subject: [PATCH] Fix data on evict_skips in arc_summary.py
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Display correct data from kstat arcstats for evict_skips,
which is currently repeating the data from mutex_misses.
Fixes #6882
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Reviewed-by: George Melikov <mail@gmelikov.ru>
Reviewed-by: Giuseppe Di Natale <dinatale2@llnl.gov>
Signed-off-by: Scot W. Stevenson <scot.stevenson@gmail.com>
Closes #6882
Closes #6883
(cherry picked from commit 7a8bef39838cdb9f996bf400add5a8583fe10e87)
Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
---
cmd/arc_summary/arc_summary.py | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/cmd/arc_summary/arc_summary.py b/cmd/arc_summary/arc_summary.py
index c9a2c5d03..5da81347c 100755
--- a/cmd/arc_summary/arc_summary.py
+++ b/cmd/arc_summary/arc_summary.py
@@ -179,12 +179,13 @@ def get_arc_summary(Kstat):
# ARC Misc.
deleted = Kstat["kstat.zfs.misc.arcstats.deleted"]
mutex_miss = Kstat["kstat.zfs.misc.arcstats.mutex_miss"]
+ evict_skip = Kstat["kstat.zfs.misc.arcstats.evict_skip"]
# ARC Misc.
output["arc_misc"] = {}
output["arc_misc"]["deleted"] = fHits(deleted)
output["arc_misc"]['mutex_miss'] = fHits(mutex_miss)
- output["arc_misc"]['evict_skips'] = fHits(mutex_miss)
+ output["arc_misc"]['evict_skips'] = fHits(evict_skip)
# ARC Sizing
arc_size = Kstat["kstat.zfs.misc.arcstats.size"]
@@ -281,7 +282,7 @@ def _arc_summary(Kstat):
sys.stdout.write("\tMutex Misses:\t\t\t\t%s\n" %
arc['arc_misc']['mutex_miss'])
sys.stdout.write("\tEvict Skips:\t\t\t\t%s\n" %
- arc['arc_misc']['mutex_miss'])
+ arc['arc_misc']['evict_skips'])
sys.stdout.write("\n")
# ARC Sizing
--
2.14.2
@@ -1,280 +0,0 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Brian Behlendorf <behlendorf1@llnl.gov>
Date: Sat, 18 Nov 2017 14:08:00 -0800
Subject: [PATCH] Update for cppcheck v1.80
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Resolve new warnings and errors from cppcheck v1.80.
* [lib/libshare/libshare.c:543]: (warning)
Possible null pointer dereference: protocol
* [lib/libzfs/libzfs_dataset.c:2323]: (warning)
Possible null pointer dereference: srctype
* [lib/libzfs/libzfs_import.c:318]: (error)
Uninitialized variable: link
* [module/zfs/abd.c:353]: (error) Uninitialized variable: sg
* [module/zfs/abd.c:353]: (error) Uninitialized variable: i
* [module/zfs/abd.c:385]: (error) Uninitialized variable: sg
* [module/zfs/abd.c:385]: (error) Uninitialized variable: i
* [module/zfs/abd.c:553]: (error) Uninitialized variable: i
* [module/zfs/abd.c:553]: (error) Uninitialized variable: sg
* [module/zfs/abd.c:763]: (error) Uninitialized variable: i
* [module/zfs/abd.c:763]: (error) Uninitialized variable: sg
* [module/zfs/abd.c:305]: (error) Uninitialized variable: tmp_page
* [module/zfs/zpl_xattr.c:342]: (warning)
Possible null pointer dereference: value
* [module/zfs/zvol.c:208]: (error) Uninitialized variable: p
Convert the following suppression to inline.
* [module/zfs/zfs_vnops.c:840]: (error)
Possible null pointer dereference: aiov
Exclude HAVE_UIO_ZEROCOPY and HAVE_DNLC from analysis since
these macro's will never be defined until this functionality
is implemented.
Reviewed-by: George Melikov <mail@gmelikov.ru>
Reviewed-by: Giuseppe Di Natale <dinatale2@llnl.gov>
Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Closes #6879
(cherry picked from commit aebc5df418cb52cc2ec9fa6c9c147ca3b048bc49)
Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
---
Makefile.am | 6 +++---
lib/libshare/libshare.c | 37 ++++---------------------------------
lib/libzfs/libzfs_dataset.c | 4 +++-
lib/libzfs/libzfs_import.c | 2 +-
module/zfs/abd.c | 18 +++++++++---------
module/zfs/zfs_vnops.c | 1 +
module/zfs/zpl_xattr.c | 2 +-
module/zfs/zvol.c | 2 +-
8 files changed, 23 insertions(+), 49 deletions(-)
diff --git a/Makefile.am b/Makefile.am
index e46ac2dbe..508d3f40e 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -65,10 +65,10 @@ lint: cppcheck paxcheck
cppcheck:
@if type cppcheck > /dev/null 2>&1; then \
- cppcheck --quiet --force --error-exitcode=2 \
+ cppcheck --quiet --force --error-exitcode=2 --inline-suppr \
--suppressions-list=.github/suppressions.txt \
- -UHAVE_SSE2 -UHAVE_AVX512F \
- ${top_srcdir}; \
+ -UHAVE_SSE2 -UHAVE_AVX512F -UHAVE_UIO_ZEROCOPY \
+ -UHAVE_DNLC ${top_srcdir}; \
fi
paxcheck:
diff --git a/lib/libshare/libshare.c b/lib/libshare/libshare.c
index aa565ca82..022df016f 100644
--- a/lib/libshare/libshare.c
+++ b/lib/libshare/libshare.c
@@ -493,20 +493,10 @@ int
sa_enable_share(sa_share_t share, char *protocol)
{
sa_share_impl_t impl_share = (sa_share_impl_t)share;
- int rc, ret;
- boolean_t found_protocol;
+ int rc, ret = SA_OK;
+ boolean_t found_protocol = B_FALSE;
sa_fstype_t *fstype;
-#ifdef DEBUG
- fprintf(stderr, "sa_enable_share: share->sharepath=%s, protocol=%s\n",
- impl_share->sharepath, protocol);
-#endif
-
- assert(impl_share->handle != NULL);
-
- ret = SA_OK;
- found_protocol = B_FALSE;
-
fstype = fstypes;
while (fstype != NULL) {
if (protocol == NULL || strcmp(fstype->name, protocol) == 0) {
@@ -534,18 +524,10 @@ int
sa_disable_share(sa_share_t share, char *protocol)
{
sa_share_impl_t impl_share = (sa_share_impl_t)share;
- int rc, ret;
- boolean_t found_protocol;
+ int rc, ret = SA_OK;
+ boolean_t found_protocol = B_FALSE;
sa_fstype_t *fstype;
-#ifdef DEBUG
- fprintf(stderr, "sa_disable_share: share->sharepath=%s, protocol=%s\n",
- impl_share->sharepath, protocol);
-#endif
-
- ret = SA_OK;
- found_protocol = B_FALSE;
-
fstype = fstypes;
while (fstype != NULL) {
if (protocol == NULL || strcmp(fstype->name, protocol) == 0) {
@@ -696,11 +678,6 @@ sa_parse_legacy_options(sa_group_t group, char *options, char *proto)
{
sa_fstype_t *fstype;
-#ifdef DEBUG
- fprintf(stderr, "sa_parse_legacy_options: options=%s, proto=%s\n",
- options, proto);
-#endif
-
fstype = fstypes;
while (fstype != NULL) {
if (strcmp(fstype->name, proto) != 0) {
@@ -787,12 +764,6 @@ sa_zfs_process_share(sa_handle_t handle, sa_group_t group, sa_share_t share,
sa_handle_impl_t impl_handle = (sa_handle_impl_t)handle;
sa_share_impl_t impl_share = (sa_share_impl_t)share;
-#ifdef DEBUG
- fprintf(stderr, "sa_zfs_process_share: mountpoint=%s, proto=%s, "
- "shareopts=%s, sourcestr=%s, dataset=%s\n", mountpoint, proto,
- shareopts, sourcestr, dataset);
-#endif
-
return (process_share(impl_handle, impl_share, mountpoint, NULL,
proto, shareopts, NULL, dataset, B_FALSE));
}
diff --git a/lib/libzfs/libzfs_dataset.c b/lib/libzfs/libzfs_dataset.c
index d6e85024d..b65dbc826 100644
--- a/lib/libzfs/libzfs_dataset.c
+++ b/lib/libzfs/libzfs_dataset.c
@@ -2244,8 +2244,10 @@ static void
get_source(zfs_handle_t *zhp, zprop_source_t *srctype, char *source,
char *statbuf, size_t statlen)
{
- if (statbuf == NULL || *srctype == ZPROP_SRC_TEMPORARY)
+ if (statbuf == NULL ||
+ srctype == NULL || *srctype == ZPROP_SRC_TEMPORARY) {
return;
+ }
if (source == NULL) {
*srctype = ZPROP_SRC_NONE;
diff --git a/lib/libzfs/libzfs_import.c b/lib/libzfs/libzfs_import.c
index 8b5222475..39c067293 100644
--- a/lib/libzfs/libzfs_import.c
+++ b/lib/libzfs/libzfs_import.c
@@ -309,7 +309,7 @@ zpool_label_disk_wait(char *path, int timeout_ms)
dev = udev_device_new_from_subsystem_sysname(udev,
"block", sysname);
if ((dev != NULL) && udev_device_is_ready(dev)) {
- struct udev_list_entry *links, *link;
+ struct udev_list_entry *links, *link = NULL;
ret = 0;
links = udev_device_get_devlinks_list_entry(dev);
diff --git a/module/zfs/abd.c b/module/zfs/abd.c
index 765ac7fb7..138b041c8 100644
--- a/module/zfs/abd.c
+++ b/module/zfs/abd.c
@@ -250,7 +250,7 @@ abd_alloc_pages(abd_t *abd, size_t size)
struct list_head pages;
struct sg_table table;
struct scatterlist *sg;
- struct page *page, *tmp_page;
+ struct page *page, *tmp_page = NULL;
gfp_t gfp = __GFP_NOWARN | GFP_NOIO;
gfp_t gfp_comp = (gfp | __GFP_NORETRY | __GFP_COMP) & ~__GFP_RECLAIM;
int max_order = MIN(zfs_abd_scatter_max_order, MAX_ORDER - 1);
@@ -334,12 +334,12 @@ abd_alloc_pages(abd_t *abd, size_t size)
static void
abd_alloc_pages(abd_t *abd, size_t size)
{
- struct scatterlist *sg;
+ struct scatterlist *sg = NULL;
struct sg_table table;
struct page *page;
gfp_t gfp = __GFP_NOWARN | GFP_NOIO;
int nr_pages = abd_chunkcnt_for_bytes(size);
- int i;
+ int i = 0;
while (sg_alloc_table(&table, nr_pages, gfp)) {
ABDSTAT_BUMP(abdstat_scatter_sg_table_retry);
@@ -370,11 +370,11 @@ abd_alloc_pages(abd_t *abd, size_t size)
static void
abd_free_pages(abd_t *abd)
{
- struct scatterlist *sg;
+ struct scatterlist *sg = NULL;
struct sg_table table;
struct page *page;
int nr_pages = ABD_SCATTER(abd).abd_nents;
- int order, i;
+ int order, i = 0;
if (abd->abd_flags & ABD_FLAG_MULTI_ZONE)
ABDSTAT_BUMPDOWN(abdstat_scatter_page_multi_zone);
@@ -543,8 +543,8 @@ abd_verify(abd_t *abd)
ASSERT3P(abd->abd_u.abd_linear.abd_buf, !=, NULL);
} else {
size_t n;
- int i;
- struct scatterlist *sg;
+ int i = 0;
+ struct scatterlist *sg = NULL;
ASSERT3U(ABD_SCATTER(abd).abd_nents, >, 0);
ASSERT3U(ABD_SCATTER(abd).abd_offset, <,
@@ -749,8 +749,8 @@ abd_get_offset_impl(abd_t *sabd, size_t off, size_t size)
abd->abd_u.abd_linear.abd_buf =
(char *)sabd->abd_u.abd_linear.abd_buf + off;
} else {
- int i;
- struct scatterlist *sg;
+ int i = 0;
+ struct scatterlist *sg = NULL;
size_t new_offset = sabd->abd_u.abd_scatter.abd_offset + off;
abd = abd_alloc_struct();
diff --git a/module/zfs/zfs_vnops.c b/module/zfs/zfs_vnops.c
index 6a1dab5c9..6f6ce79db 100644
--- a/module/zfs/zfs_vnops.c
+++ b/module/zfs/zfs_vnops.c
@@ -836,6 +836,7 @@ zfs_write(struct inode *ip, uio_t *uio, int ioflag, cred_t *cr)
aiov->iov_base != abuf->b_data)) {
ASSERT(xuio);
dmu_write(zfsvfs->z_os, zp->z_id, woff,
+ /* cppcheck-suppress nullPointer */
aiov->iov_len, aiov->iov_base, tx);
dmu_return_arcbuf(abuf);
xuio_stat_wbuf_copied();
diff --git a/module/zfs/zpl_xattr.c b/module/zfs/zpl_xattr.c
index 0c626b122..ebb6e7be2 100644
--- a/module/zfs/zpl_xattr.c
+++ b/module/zfs/zpl_xattr.c
@@ -333,7 +333,7 @@ zpl_xattr_get_sa(struct inode *ip, const char *name, void *value, size_t size)
if (error)
return (error);
- if (!size)
+ if (size == 0 || value == NULL)
return (nv_size);
if (size < nv_size)
diff --git a/module/zfs/zvol.c b/module/zfs/zvol.c
index 5293f95fb..aac494209 100644
--- a/module/zfs/zvol.c
+++ b/module/zfs/zvol.c
@@ -202,7 +202,7 @@ static zvol_state_t *
zvol_find_by_name_hash(const char *name, uint64_t hash, int mode)
{
zvol_state_t *zv;
- struct hlist_node *p;
+ struct hlist_node *p = NULL;
mutex_enter(&zvol_state_lock);
hlist_for_each(p, ZVOL_HT_HEAD(hash)) {
--
2.14.2
@@ -1,157 +0,0 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Dominik Hassler <hadfl@omniosce.org>
Date: Thu, 9 Nov 2017 15:22:07 +0100
Subject: [PATCH] OpenZFS 8794 - cstyle generates warnings with recent perl
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Authored by: Dominik Hassler <hadfl@omniosce.org>
Reviewed by: Andy Fiddaman <andy@omniosce.org>
Reviewed by: Igor Kozhukhov <igor@dilos.org>
Reviewed by: Toomas Soome <tsoome@me.com>
Reviewed by: Brian Behlendorf <behlendorf1@llnl.gov>
Approved by: Dan McDonald <danmcd@joyent.com>
Ported-by: Giuseppe Di Natale <dinatale2@llnl.gov>
OpenZFS-issue: https://www.illumos.org/issues/8794
OpenZFS-commit: https://github.com/openzfs/openzfs/commit/578f67364c
Closes #6973
(cherry picked from commit d27a40d28f96cfd9f7b32337306f64935ee749bc)
Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
---
scripts/cstyle.pl | 36 ++++++++++++++++++------------------
1 file changed, 18 insertions(+), 18 deletions(-)
diff --git a/scripts/cstyle.pl b/scripts/cstyle.pl
index 73c708c0b..00b33dddf 100755
--- a/scripts/cstyle.pl
+++ b/scripts/cstyle.pl
@@ -383,7 +383,7 @@ line: while (<$filehandle>) {
# is this the beginning or ending of a function?
# (not if "struct foo\n{\n")
- if (/^{$/ && $prev =~ /\)\s*(const\s*)?(\/\*.*\*\/\s*)?\\?$/) {
+ if (/^\{$/ && $prev =~ /\)\s*(const\s*)?(\/\*.*\*\/\s*)?\\?$/) {
$in_function = 1;
$in_declaration = 1;
$in_function_header = 0;
@@ -391,7 +391,7 @@ line: while (<$filehandle>) {
$prev = $line;
next line;
}
- if (/^}\s*(\/\*.*\*\/\s*)*$/) {
+ if (/^\}\s*(\/\*.*\*\/\s*)*$/) {
if ($prev =~ /^\s*return\s*;/) {
err_prev("unneeded return at end of function");
}
@@ -401,7 +401,7 @@ line: while (<$filehandle>) {
next line;
}
if ($in_function_header && ! /^ (\w|\.)/ ) {
- if (/^{}$/ # empty functions
+ if (/^\{\}$/ # empty functions
|| /;/ #run function with multiline arguments
|| /#/ #preprocessor commands
|| /^[^\s\\]*\(.*\)$/ #functions without ; at the end
@@ -431,7 +431,7 @@ line: while (<$filehandle>) {
$function_header_full_indent = 1;
}
}
- if ($in_function_header && /^{$/) {
+ if ($in_function_header && /^\{$/) {
$in_function_header = 0;
$function_header_full_indent = 0;
$in_function = 1;
@@ -440,7 +440,7 @@ line: while (<$filehandle>) {
$in_function_header = 0;
$function_header_full_indent = 0;
}
- if ($in_function_header && /{$/ ) {
+ if ($in_function_header && /\{$/ ) {
if ($picky) {
err("opening brace on same line as function header");
}
@@ -670,14 +670,14 @@ line: while (<$filehandle>) {
if (/\S\{/ && !/\{\{/) {
err("missing space before left brace");
}
- if ($in_function && /^\s+{/ &&
+ if ($in_function && /^\s+\{/ &&
($prev =~ /\)\s*$/ || $prev =~ /\bstruct\s+\w+$/)) {
err("left brace starting a line");
}
- if (/}(else|while)/) {
+ if (/\}(else|while)/) {
err("missing space after right brace");
}
- if (/}\s\s+(else|while)/) {
+ if (/\}\s\s+(else|while)/) {
err("extra space after right brace");
}
if (/\b_VOID\b|\bVOID\b|\bSTATIC\b/) {
@@ -730,18 +730,18 @@ line: while (<$filehandle>) {
if ($heuristic) {
# cannot check this everywhere due to "struct {\n...\n} foo;"
if ($in_function && !$in_declaration &&
- /}./ && !/}\s+=/ && !/{.*}[;,]$/ && !/}(\s|)*$/ &&
- !/} (else|while)/ && !/}}/) {
+ /\}./ && !/\}\s+=/ && !/\{.*\}[;,]$/ && !/\}(\s|)*$/ &&
+ !/\} (else|while)/ && !/\}\}/) {
err("possible bad text following right brace");
}
# cannot check this because sub-blocks in
# the middle of code are ok
- if ($in_function && /^\s+{/) {
+ if ($in_function && /^\s+\{/) {
err("possible left brace starting a line");
}
}
if (/^\s*else\W/) {
- if ($prev =~ /^\s*}$/) {
+ if ($prev =~ /^\s*\}$/) {
err_prefix($prev,
"else and right brace should be on same line");
}
@@ -827,8 +827,8 @@ process_indent($)
# skip over enumerations, array definitions, initializers, etc.
if ($cont_off <= 0 && !/^\s*$special/ &&
- (/(?:(?:\b(?:enum|struct|union)\s*[^\{]*)|(?:\s+=\s*)){/ ||
- (/^\s*{/ && $prev =~ /=\s*(?:\/\*.*\*\/\s*)*$/))) {
+ (/(?:(?:\b(?:enum|struct|union)\s*[^\{]*)|(?:\s+=\s*))\{/ ||
+ (/^\s*\{/ && $prev =~ /=\s*(?:\/\*.*\*\/\s*)*$/))) {
$cont_in = 0;
$cont_off = tr/{/{/ - tr/}/}/;
return;
@@ -851,14 +851,14 @@ process_indent($)
return if (/^\s*\}?$/);
return if (/^\s*\}?\s*else\s*\{?$/);
return if (/^\s*do\s*\{?$/);
- return if (/{$/);
- return if (/}[,;]?$/);
+ return if (/\{$/);
+ return if (/\}[,;]?$/);
# Allow macros on their own lines
return if (/^\s*[A-Z_][A-Z_0-9]*$/);
# cases we don't deal with, generally non-kosher
- if (/{/) {
+ if (/\{/) {
err("stuff after {");
return;
}
@@ -927,7 +927,7 @@ process_indent($)
#
next if (@cont_paren != 0);
if ($cont_special) {
- if ($rest =~ /^\s*{?$/) {
+ if ($rest =~ /^\s*\{?$/) {
$cont_in = 0;
last;
}
--
2.14.2
@@ -1,137 +0,0 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: LOLi <loli10K@users.noreply.github.com>
Date: Tue, 19 Dec 2017 22:02:40 +0100
Subject: [PATCH] Handle invalid options in arc_summary
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
If an invalid option is provided to arc_summary.py we handle any error
thrown from the getopt Python module and print the usage help message.
Reviewed-by: George Melikov <mail@gmelikov.ru>
Reviewed-by: Giuseppe Di Natale <dinatale2@llnl.gov>
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: loli10K <ezomori.nozomu@gmail.com>
Closes #6983
(cherry picked from commit 9a6c57845a431f55fd617c38e180b26215f0ca6f)
Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
---
.../tests/functional/cli_user/misc/Makefile.am | 1 +
cmd/arc_summary/arc_summary.py | 16 ++++++---
tests/runfiles/linux.run | 2 +-
.../cli_user/misc/arc_summary_002_neg.ksh | 38 ++++++++++++++++++++++
4 files changed, 51 insertions(+), 6 deletions(-)
create mode 100755 tests/zfs-tests/tests/functional/cli_user/misc/arc_summary_002_neg.ksh
diff --git a/tests/zfs-tests/tests/functional/cli_user/misc/Makefile.am b/tests/zfs-tests/tests/functional/cli_user/misc/Makefile.am
index cf7502c27..75a3d0886 100644
--- a/tests/zfs-tests/tests/functional/cli_user/misc/Makefile.am
+++ b/tests/zfs-tests/tests/functional/cli_user/misc/Makefile.am
@@ -46,4 +46,5 @@ dist_pkgdata_SCRIPTS = \
zpool_upgrade_001_neg.ksh \
arcstat_001_pos.ksh \
arc_summary_001_pos.ksh \
+ arc_summary_002_neg.ksh \
dbufstat_001_pos.ksh
diff --git a/cmd/arc_summary/arc_summary.py b/cmd/arc_summary/arc_summary.py
index 5da81347c..2472f87ea 100755
--- a/cmd/arc_summary/arc_summary.py
+++ b/cmd/arc_summary/arc_summary.py
@@ -977,9 +977,15 @@ def main():
global show_tunable_descriptions
global alternate_tunable_layout
- opts, args = getopt.getopt(
- sys.argv[1:], "adp:h", ["alternate", "description", "page=", "help"]
- )
+ try:
+ opts, args = getopt.getopt(
+ sys.argv[1:],
+ "adp:h", ["alternate", "description", "page=", "help"]
+ )
+ except getopt.error as e:
+ sys.stderr.write("Error: %s\n" % e.msg)
+ usage()
+ sys.exit(1)
args = {}
for opt, arg in opts:
@@ -991,7 +997,7 @@ def main():
args['p'] = arg
if opt in ('-h', '--help'):
usage()
- sys.exit()
+ sys.exit(0)
Kstat = get_Kstat()
@@ -1006,7 +1012,7 @@ def main():
except IndexError:
sys.stderr.write('the argument to -p must be between 1 and ' +
str(len(unSub)) + '\n')
- sys.exit()
+ sys.exit(1)
else:
pages = unSub
diff --git a/tests/runfiles/linux.run b/tests/runfiles/linux.run
index 10bd110a6..f872c0cbf 100644
--- a/tests/runfiles/linux.run
+++ b/tests/runfiles/linux.run
@@ -366,7 +366,7 @@ tests = ['zdb_001_neg', 'zfs_001_neg', 'zfs_allow_001_neg',
'zpool_offline_001_neg', 'zpool_online_001_neg', 'zpool_remove_001_neg',
'zpool_replace_001_neg', 'zpool_scrub_001_neg', 'zpool_set_001_neg',
'zpool_status_001_neg', 'zpool_upgrade_001_neg', 'arcstat_001_pos',
- 'arc_summary_001_pos', 'dbufstat_001_pos']
+ 'arc_summary_001_pos', 'arc_summary_002_neg', 'dbufstat_001_pos']
user =
tags = ['functional', 'cli_user', 'misc']
diff --git a/tests/zfs-tests/tests/functional/cli_user/misc/arc_summary_002_neg.ksh b/tests/zfs-tests/tests/functional/cli_user/misc/arc_summary_002_neg.ksh
new file mode 100755
index 000000000..e63552feb
--- /dev/null
+++ b/tests/zfs-tests/tests/functional/cli_user/misc/arc_summary_002_neg.ksh
@@ -0,0 +1,38 @@
+#!/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) 2015 by Lawrence Livermore National Security, LLC.
+# All rights reserved.
+#
+
+. $STF_SUITE/include/libtest.shlib
+
+typeset args=("-x" "-r" "-5" "-p 7" "--err" "-@")
+
+log_assert "arc_summary.py generates an error code with invalid options"
+
+for arg in "${args[@]}"; do
+ log_mustnot eval "arc_summary.py $arg > /dev/null"
+done
+
+log_pass "arc_summary.py generates an error code with invalid options"
--
2.14.2
@@ -1,70 +0,0 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Giuseppe Di Natale <dinatale2@users.noreply.github.com>
Date: Tue, 19 Dec 2017 13:19:24 -0800
Subject: [PATCH] Handle broken pipes in arc_summary
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Using a command similar to 'arc_summary.py | head' causes
a broken pipe exception. Gracefully exit in the case of a
broken pipe in arc_summary.py.
Reviewed-by: Richard Elling <Richard.Elling@RichardElling.com>
Reviewed-by: loli10K <ezomori.nozomu@gmail.com>
Signed-off-by: Giuseppe Di Natale <dinatale2@llnl.gov>
Closes #6965
Closes #6969
(cherry picked from commit c2aacf20872856559972a27f7c3f9b4a6fe10cd2)
Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
---
cmd/arc_summary/arc_summary.py | 13 +++++++++++++
.../tests/functional/cli_user/misc/arc_summary_001_pos.ksh | 3 +++
2 files changed, 16 insertions(+)
diff --git a/cmd/arc_summary/arc_summary.py b/cmd/arc_summary/arc_summary.py
index 2472f87ea..f6dbb9bfb 100755
--- a/cmd/arc_summary/arc_summary.py
+++ b/cmd/arc_summary/arc_summary.py
@@ -47,6 +47,7 @@ import getopt
import os
import sys
import time
+import errno
from subprocess import Popen, PIPE
from decimal import Decimal as D
@@ -55,6 +56,18 @@ show_tunable_descriptions = False
alternate_tunable_layout = False
+def handle_Exception(ex_cls, ex, tb):
+ if ex is IOError:
+ if ex.errno == errno.EPIPE:
+ sys.exit()
+
+ if ex is KeyboardInterrupt:
+ sys.exit()
+
+
+sys.excepthook = handle_Exception
+
+
def get_Kstat():
"""Collect information on the ZFS subsystem from the /proc virtual
file system. The name "kstat" is a holdover from the Solaris utility
diff --git a/tests/zfs-tests/tests/functional/cli_user/misc/arc_summary_001_pos.ksh b/tests/zfs-tests/tests/functional/cli_user/misc/arc_summary_001_pos.ksh
index 67c11c8ab..6653b9c1a 100755
--- a/tests/zfs-tests/tests/functional/cli_user/misc/arc_summary_001_pos.ksh
+++ b/tests/zfs-tests/tests/functional/cli_user/misc/arc_summary_001_pos.ksh
@@ -37,4 +37,7 @@ while [[ $i -lt ${#args[*]} ]]; do
((i = i + 1))
done
+log_must eval "arc_summary.py | head > /dev/null"
+log_must eval "arc_summary.py | head -1 > /dev/null"
+
log_pass "arc_summary.py generates output and doesn't return an error code"
--
2.14.2
@@ -1,86 +0,0 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: lidongyang <gnaygnodil@gmail.com>
Date: Sat, 23 Dec 2017 05:19:51 +1100
Subject: [PATCH] Call commit callbacks from the tail of the list
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Our zfs backed Lustre MDT had soft lockups while under heavy metadata
workloads while handling transaction callbacks from osd_zfs.
The problem is zfs is not taking advantage of the fast path in
Lustre's trans callback handling, where Lustre will skip the calls
to ptlrpc_commit_replies() when it already saw a higher transaction
number.
This patch corrects this, it also has a positive impact on metadata
performance on Lustre with osd_zfs, plus some cleanup in the headers.
A similar issue for ext4/ldiskfs is described on:
https://jira.hpdd.intel.com/browse/LU-6527
Reviewed-by: Olaf Faaland <faaland1@llnl.gov>
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: Li Dongyang <dongyang.li@anu.edu.au>
Closes #6986
(cherry picked from commit 8d82a19def540bba43c8c7597142ff53f7a0b7e5)
Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
---
include/sys/dmu.h | 5 +++++
include/sys/dmu_tx.h | 4 ----
module/zfs/dmu_tx.c | 2 +-
3 files changed, 6 insertions(+), 5 deletions(-)
diff --git a/include/sys/dmu.h b/include/sys/dmu.h
index d24615262..bcdf7d646 100644
--- a/include/sys/dmu.h
+++ b/include/sys/dmu.h
@@ -713,11 +713,16 @@ void dmu_tx_mark_netfree(dmu_tx_t *tx);
* to stable storage and will also be called if the dmu_tx is aborted.
* If there is any error which prevents the transaction from being committed to
* disk, the callback will be called with a value of error != 0.
+ *
+ * When multiple callbacks are registered to the transaction, the callbacks
+ * will be called in reverse order to let Lustre, the only user of commit
+ * callback currently, take the fast path of its commit callback handling.
*/
typedef void dmu_tx_callback_func_t(void *dcb_data, int error);
void dmu_tx_callback_register(dmu_tx_t *tx, dmu_tx_callback_func_t *dcb_func,
void *dcb_data);
+void dmu_tx_do_callbacks(list_t *cb_list, int error);
/*
* Free up the data blocks for a defined range of a file. If size is
diff --git a/include/sys/dmu_tx.h b/include/sys/dmu_tx.h
index f16e1e858..d82a79310 100644
--- a/include/sys/dmu_tx.h
+++ b/include/sys/dmu_tx.h
@@ -145,10 +145,6 @@ uint64_t dmu_tx_get_txg(dmu_tx_t *tx);
struct dsl_pool *dmu_tx_pool(dmu_tx_t *tx);
void dmu_tx_wait(dmu_tx_t *tx);
-void dmu_tx_callback_register(dmu_tx_t *tx, dmu_tx_callback_func_t *dcb_func,
- void *dcb_data);
-void dmu_tx_do_callbacks(list_t *cb_list, int error);
-
/*
* These routines are defined in dmu_spa.h, and are called by the SPA.
*/
diff --git a/module/zfs/dmu_tx.c b/module/zfs/dmu_tx.c
index 097fa774a..c3cc03a69 100644
--- a/module/zfs/dmu_tx.c
+++ b/module/zfs/dmu_tx.c
@@ -1200,7 +1200,7 @@ dmu_tx_do_callbacks(list_t *cb_list, int error)
{
dmu_tx_callback_t *dcb;
- while ((dcb = list_head(cb_list)) != NULL) {
+ while ((dcb = list_tail(cb_list)) != NULL) {
list_remove(cb_list, dcb);
dcb->dcb_func(dcb->dcb_data, error);
kmem_free(dcb, sizeof (dmu_tx_callback_t));
--
2.14.2
@@ -1,302 +0,0 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: LOLi <loli10K@users.noreply.github.com>
Date: Thu, 28 Dec 2017 19:15:32 +0100
Subject: [PATCH] Fix 'zpool add' handling of nested interior VDEVs
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
When replacing a faulted device which was previously handled by a spare
multiple levels of nested interior VDEVs will be present in the pool
configuration; the following example illustrates one of the possible
situations:
NAME STATE READ WRITE CKSUM
testpool DEGRADED 0 0 0
raidz1-0 DEGRADED 0 0 0
spare-0 DEGRADED 0 0 0
replacing-0 DEGRADED 0 0 0
/var/tmp/fault-dev UNAVAIL 0 0 0 cannot open
/var/tmp/replace-dev ONLINE 0 0 0
/var/tmp/spare-dev1 ONLINE 0 0 0
/var/tmp/safe-dev ONLINE 0 0 0
spares
/var/tmp/spare-dev1 INUSE currently in use
This is safe and allowed, but get_replication() needs to handle this
situation gracefully to let zpool add new devices to the pool.
Reviewed-by: George Melikov <mail@gmelikov.ru>
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: loli10K <ezomori.nozomu@gmail.com>
Closes #6678
Closes #6996
(cherry picked from commit a8fa31b50b958306cd39c21e8518f776ee59f1b6)
Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
---
.../functional/cli_root/zpool_add/Makefile.am | 3 +-
cmd/zpool/zpool_vdev.c | 6 +-
tests/runfiles/linux.run | 2 +-
tests/zfs-tests/include/libtest.shlib | 66 +++++++++++-
.../zpool_add/add_nested_replacing_spare.ksh | 111 +++++++++++++++++++++
5 files changed, 182 insertions(+), 6 deletions(-)
create mode 100755 tests/zfs-tests/tests/functional/cli_root/zpool_add/add_nested_replacing_spare.ksh
diff --git a/tests/zfs-tests/tests/functional/cli_root/zpool_add/Makefile.am b/tests/zfs-tests/tests/functional/cli_root/zpool_add/Makefile.am
index 4b6b533fe..062028299 100644
--- a/tests/zfs-tests/tests/functional/cli_root/zpool_add/Makefile.am
+++ b/tests/zfs-tests/tests/functional/cli_root/zpool_add/Makefile.am
@@ -15,4 +15,5 @@ dist_pkgdata_SCRIPTS = \
zpool_add_009_neg.ksh \
zpool_add_010_pos.ksh \
add-o_ashift.ksh \
- add_prop_ashift.ksh
+ add_prop_ashift.ksh \
+ add_nested_replacing_spare.ksh
diff --git a/cmd/zpool/zpool_vdev.c b/cmd/zpool/zpool_vdev.c
index 97faa5f9b..fd6bd9e76 100644
--- a/cmd/zpool/zpool_vdev.c
+++ b/cmd/zpool/zpool_vdev.c
@@ -860,9 +860,11 @@ get_replication(nvlist_t *nvroot, boolean_t fatal)
/*
* If this is a replacing or spare vdev, then
- * get the real first child of the vdev.
+ * get the real first child of the vdev: do this
+ * in a loop because replacing and spare vdevs
+ * can be nested.
*/
- if (strcmp(childtype,
+ while (strcmp(childtype,
VDEV_TYPE_REPLACING) == 0 ||
strcmp(childtype, VDEV_TYPE_SPARE) == 0) {
nvlist_t **rchild;
diff --git a/tests/runfiles/linux.run b/tests/runfiles/linux.run
index f872c0cbf..303c27529 100644
--- a/tests/runfiles/linux.run
+++ b/tests/runfiles/linux.run
@@ -228,7 +228,7 @@ tests = ['zpool_add_001_pos', 'zpool_add_002_pos', 'zpool_add_003_pos',
'zpool_add_004_pos', 'zpool_add_005_pos', 'zpool_add_006_pos',
'zpool_add_007_neg', 'zpool_add_008_neg', 'zpool_add_009_neg',
'zpool_add_010_pos',
- 'add-o_ashift', 'add_prop_ashift']
+ 'add-o_ashift', 'add_prop_ashift', 'add_nested_replacing_spare']
tags = ['functional', 'cli_root', 'zpool_add']
[tests/functional/cli_root/zpool_attach]
diff --git a/tests/zfs-tests/include/libtest.shlib b/tests/zfs-tests/include/libtest.shlib
index 345d1903d..86f172a6d 100644
--- a/tests/zfs-tests/include/libtest.shlib
+++ b/tests/zfs-tests/include/libtest.shlib
@@ -1988,6 +1988,31 @@ function check_hotspare_state # pool disk state{inuse,avail}
return 0
}
+#
+# Wait until a hotspare transitions to a given state or times out.
+#
+# Return 0 when pool/disk matches expected state, 1 on timeout.
+#
+function wait_hotspare_state # pool disk state timeout
+{
+ typeset pool=$1
+ typeset disk=${2#$/DEV_DSKDIR/}
+ typeset state=$3
+ typeset timeout=${4:-60}
+ typeset -i i=0
+
+ while [[ $i -lt $timeout ]]; do
+ if check_hotspare_state $pool $disk $state; then
+ return 0
+ fi
+
+ i=$((i+1))
+ sleep 1
+ done
+
+ return 1
+}
+
#
# Verify a given slog disk is inuse or avail
#
@@ -2026,6 +2051,31 @@ function check_vdev_state # pool disk state{online,offline,unavail}
return 0
}
+#
+# Wait until a vdev transitions to a given state or times out.
+#
+# Return 0 when pool/disk matches expected state, 1 on timeout.
+#
+function wait_vdev_state # pool disk state timeout
+{
+ typeset pool=$1
+ typeset disk=${2#$/DEV_DSKDIR/}
+ typeset state=$3
+ typeset timeout=${4:-60}
+ typeset -i i=0
+
+ while [[ $i -lt $timeout ]]; do
+ if check_vdev_state $pool $disk $state; then
+ return 0
+ fi
+
+ i=$((i+1))
+ sleep 1
+ done
+
+ return 1
+}
+
#
# Check the output of 'zpool status -v <pool>',
# and to see if the content of <token> contain the <keyword> specified.
@@ -3394,13 +3444,25 @@ function zed_stop
if [[ -f ${ZEDLET_DIR}/zed.pid ]]; then
zedpid=$(cat ${ZEDLET_DIR}/zed.pid)
kill $zedpid
- wait $zedpid
+ while ps -p $zedpid > /dev/null; do
+ sleep 1
+ done
rm -f ${ZEDLET_DIR}/zed.pid
fi
-
return 0
}
+#
+# Drain all zevents
+#
+function zed_events_drain
+{
+ while [ $(zpool events -H | wc -l) -ne 0 ]; do
+ sleep 1
+ zpool events -c >/dev/null
+ done
+}
+
#
# Check is provided device is being active used as a swap device.
#
diff --git a/tests/zfs-tests/tests/functional/cli_root/zpool_add/add_nested_replacing_spare.ksh b/tests/zfs-tests/tests/functional/cli_root/zpool_add/add_nested_replacing_spare.ksh
new file mode 100755
index 000000000..b38079852
--- /dev/null
+++ b/tests/zfs-tests/tests/functional/cli_root/zpool_add/add_nested_replacing_spare.ksh
@@ -0,0 +1,111 @@
+#!/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 2017, loli10K <ezomori.nozomu@gmail.com>. All rights reserved.
+#
+
+. $STF_SUITE/include/libtest.shlib
+. $STF_SUITE/tests/functional/cli_root/zpool_create/zpool_create.shlib
+
+#
+# DESCRIPTION:
+# 'zpool add' works with nested replacing/spare vdevs
+#
+# STRATEGY:
+# 1. Create a redundant pool with a spare device
+# 2. Manually fault a device, wait for the hot-spare and then replace it:
+# this creates a situation where replacing and spare vdevs are nested.
+# 3. Verify 'zpool add' is able to add new devices to the pool.
+#
+
+verify_runnable "global"
+
+function cleanup
+{
+ zed_stop
+ zed_cleanup
+ log_must zinject -c all
+ destroy_pool $TESTPOOL
+ log_must rm -f $DATA_DEVS $SPARE_DEVS
+}
+
+log_assert "'zpool add' works with nested replacing/spare vdevs"
+log_onexit cleanup
+
+FAULT_DEV="$TEST_BASE_DIR/fault-dev"
+SAFE_DEV1="$TEST_BASE_DIR/safe-dev1"
+SAFE_DEV2="$TEST_BASE_DIR/safe-dev2"
+SAFE_DEV3="$TEST_BASE_DIR/safe-dev3"
+SAFE_DEVS="$SAFE_DEV1 $SAFE_DEV2 $SAFE_DEV3"
+REPLACE_DEV="$TEST_BASE_DIR/replace-dev"
+ADD_DEV="$TEST_BASE_DIR/add-dev"
+DATA_DEVS="$FAULT_DEV $SAFE_DEVS $REPLACE_DEV $ADD_DEV"
+SPARE_DEV1="$TEST_BASE_DIR/spare-dev1"
+SPARE_DEV2="$TEST_BASE_DIR/spare-dev2"
+SPARE_DEVS="$SPARE_DEV1 $SPARE_DEV2"
+
+# We need ZED running to work with spares
+zed_setup
+zed_start
+# Clear events from previous runs
+zed_events_drain
+
+for type in "mirror" "raidz1" "raidz2" "raidz3"
+do
+ # 1. Create a redundant pool with a spare device
+ truncate -s $SPA_MINDEVSIZE $DATA_DEVS $SPARE_DEVS
+ log_must zpool create $TESTPOOL $type $FAULT_DEV $SAFE_DEVS
+ log_must zpool add $TESTPOOL spare $SPARE_DEV1
+
+ # 2.1 Fault a device, verify the spare is kicked in
+ log_must zinject -d $FAULT_DEV -e nxio -T all -f 100 $TESTPOOL
+ log_must zpool scrub $TESTPOOL
+ log_must wait_vdev_state $TESTPOOL $FAULT_DEV "UNAVAIL" 60
+ log_must wait_vdev_state $TESTPOOL $SPARE_DEV1 "ONLINE" 60
+ log_must wait_hotspare_state $TESTPOOL $SPARE_DEV1 "INUSE"
+ log_must check_state $TESTPOOL "" "DEGRADED"
+
+ # 2.2 Replace the faulted device: this creates a replacing vdev inside a
+ # spare vdev
+ log_must zpool replace $TESTPOOL $FAULT_DEV $REPLACE_DEV
+ log_must wait_vdev_state $TESTPOOL $REPLACE_DEV "ONLINE" 60
+ zpool status | awk -v poolname="$TESTPOOL" -v type="$type" 'BEGIN {s=""}
+ $1 ~ poolname {c=4}; (c && c--) { s=s$1":" }
+ END { if (s != poolname":"type"-0:spare-0:replacing-0:") exit 1; }'
+ if [[ $? -ne 0 ]]; then
+ log_fail "Pool does not contain nested replacing/spare vdevs"
+ fi
+
+ # 3. Verify 'zpool add' is able to add new devices
+ log_must zpool add $TESTPOOL spare $SPARE_DEV2
+ log_must wait_hotspare_state $TESTPOOL $SPARE_DEV2 "AVAIL"
+ log_must zpool add -f $TESTPOOL $ADD_DEV
+ log_must wait_vdev_state $TESTPOOL $ADD_DEV "ONLINE" 60
+
+ # Cleanup
+ log_must zinject -c all
+ destroy_pool $TESTPOOL
+ log_must rm -f $DATA_DEVS $SPARE_DEVS
+done
+
+log_pass "'zpool add' works with nested replacing/spare vdevs"
--
2.14.2
@@ -1,56 +0,0 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Nathaniel Wesley Filardo
<VP331RHQ115POU58JFRLKB7OPA0L18E3@cmx.ietfng.org>
Date: Tue, 9 Jan 2018 14:14:45 -0500
Subject: [PATCH] zhack: fix getopt return type
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
This fixes zhack's command processing on ARM. On ARM char
is unsigned, and so, in promotion to an int, it will never
compare equal to -1.
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: Nathaniel Wesley Filardo <nwf@cs.jhu.edu>
Closes #7016
(cherry picked from commit a2ee6568c604fb455d6ee7fa51728fb2bc700dac)
Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
---
cmd/zhack/zhack.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/cmd/zhack/zhack.c b/cmd/zhack/zhack.c
index 70f88fc69..e15af8f4e 100644
--- a/cmd/zhack/zhack.c
+++ b/cmd/zhack/zhack.c
@@ -268,7 +268,7 @@ zhack_feature_enable_sync(void *arg, dmu_tx_t *tx)
static void
zhack_do_feature_enable(int argc, char **argv)
{
- char c;
+ int c;
char *desc, *target;
spa_t *spa;
objset_t *mos;
@@ -363,7 +363,7 @@ feature_decr_sync(void *arg, dmu_tx_t *tx)
static void
zhack_do_feature_ref(int argc, char **argv)
{
- char c;
+ int c;
char *target;
boolean_t decr = B_FALSE;
spa_t *spa;
@@ -483,7 +483,7 @@ main(int argc, char **argv)
char *path[MAX_NUM_PATHS];
const char *subcommand;
int rv = 0;
- char c;
+ int c;
g_importargs.path = path;
--
2.14.2
@@ -1,83 +0,0 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Nathaniel Wesley Filardo
<VP331RHQ115POU58JFRLKB7OPA0L18E3@cmx.ietfng.org>
Date: Tue, 9 Jan 2018 17:46:52 -0500
Subject: [PATCH] Revert raidz_map and _col structure types
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
As part of the refactoring of ab9f4b0b824ab4cc64a4fa382c037f4154de12d6,
several uint64_t-s and uint8_t-s were changed to other types. This
caused ZoL github issue #6981, an overflow of a size_t on a 32-bit ARM
machine. In absense of any strong motivation for the type changes, this
simply puts them back, modulo the changes accumulated for ABD.
Compile-tested on amd64 and run-tested on armhf.
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Reviewed-by: Gvozden Neskovic <neskovic@gmail.com>
Signed-off-by: Nathaniel Wesley Filardo <nwf@cs.jhu.edu>
Closes #6981
Closes #7023
(cherry picked from commit 9fb09f79e573d377b2b041f620eac703be3acc3f)
Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
---
include/sys/vdev_raidz_impl.h | 34 +++++++++++++++++-----------------
1 file changed, 17 insertions(+), 17 deletions(-)
diff --git a/include/sys/vdev_raidz_impl.h b/include/sys/vdev_raidz_impl.h
index 4bd15e3d5..0799ed19d 100644
--- a/include/sys/vdev_raidz_impl.h
+++ b/include/sys/vdev_raidz_impl.h
@@ -102,30 +102,30 @@ typedef struct raidz_impl_ops {
} raidz_impl_ops_t;
typedef struct raidz_col {
- size_t rc_devidx; /* child device index for I/O */
- size_t rc_offset; /* device offset */
- size_t rc_size; /* I/O size */
+ uint64_t rc_devidx; /* child device index for I/O */
+ uint64_t rc_offset; /* device offset */
+ uint64_t rc_size; /* I/O size */
abd_t *rc_abd; /* I/O data */
void *rc_gdata; /* used to store the "good" version */
int rc_error; /* I/O error for this device */
- unsigned int rc_tried; /* Did we attempt this I/O column? */
- unsigned int rc_skipped; /* Did we skip this I/O column? */
+ uint8_t rc_tried; /* Did we attempt this I/O column? */
+ uint8_t rc_skipped; /* Did we skip this I/O column? */
} raidz_col_t;
typedef struct raidz_map {
- size_t rm_cols; /* Regular column count */
- size_t rm_scols; /* Count including skipped columns */
- size_t rm_bigcols; /* Number of oversized columns */
- size_t rm_asize; /* Actual total I/O size */
- size_t rm_missingdata; /* Count of missing data devices */
- size_t rm_missingparity; /* Count of missing parity devices */
- size_t rm_firstdatacol; /* First data column/parity count */
- size_t rm_nskip; /* Skipped sectors for padding */
- size_t rm_skipstart; /* Column index of padding start */
+ uint64_t rm_cols; /* Regular column count */
+ uint64_t rm_scols; /* Count including skipped columns */
+ uint64_t rm_bigcols; /* Number of oversized columns */
+ uint64_t rm_asize; /* Actual total I/O size */
+ uint64_t rm_missingdata; /* Count of missing data devices */
+ uint64_t rm_missingparity; /* Count of missing parity devices */
+ uint64_t rm_firstdatacol; /* First data column/parity count */
+ uint64_t rm_nskip; /* Skipped sectors for padding */
+ uint64_t rm_skipstart; /* Column index of padding start */
abd_t *rm_abd_copy; /* rm_asize-buffer of copied data */
- size_t rm_reports; /* # of referencing checksum reports */
- unsigned int rm_freed; /* map no longer has referencing ZIO */
- unsigned int rm_ecksuminjected; /* checksum error was injected */
+ uintptr_t rm_reports; /* # of referencing checksum reports */
+ uint8_t rm_freed; /* map no longer has referencing ZIO */
+ uint8_t rm_ecksuminjected; /* checksum error was injected */
raidz_impl_ops_t *rm_ops; /* RAIDZ math operations */
raidz_col_t rm_col[1]; /* Flexible array of I/O columns */
} raidz_map_t;
--
2.14.2
@@ -1,63 +0,0 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Alex Zhuravlev <alexey.zhuravlev@intel.com>
Date: Mon, 8 Jan 2018 10:57:47 -0800
Subject: [PATCH] Use zap_count instead of cached z_size for unlink
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
As a performance optimization Lustre does not strictly update
the SA_ZPL_SIZE when adding/removing from non-directory entries.
This results in entries which cannot be removed through the ZPL
layer even though the ZAP is empty and safe to remove.
Resolve this issue by checking the zap_count() directly instead
on relying on the cached SA_ZPL_SIZE. Micro-benchmarks show no
significant performance impact due to the additional overhead
of using zap_count().
Reviewed-by: Olaf Faaland <faaland1@llnl.gov>
Reviewed-by: Giuseppe Di Natale <dinatale2@llnl.gov>
Signed-off-by: Alex Zhuravlev <alexey.zhuravlev@intel.com>
Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Closes #7019
(cherry picked from commit 129e3e8dc32673809d1d3523a0e773567e281a4a)
Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
---
module/zfs/zfs_dir.c | 16 +++++++++++++++-
1 file changed, 15 insertions(+), 1 deletion(-)
diff --git a/module/zfs/zfs_dir.c b/module/zfs/zfs_dir.c
index c6ee30291..9a8bbccd9 100644
--- a/module/zfs/zfs_dir.c
+++ b/module/zfs/zfs_dir.c
@@ -977,11 +977,25 @@ zfs_link_destroy(zfs_dirlock_t *dl, znode_t *zp, dmu_tx_t *tx, int flag,
* Indicate whether the directory is empty. Works with or without z_lock
* held, but can only be consider a hint in the latter case. Returns true
* if only "." and ".." remain and there's no work in progress.
+ *
+ * The internal ZAP size, rather than zp->z_size, needs to be checked since
+ * some consumers (Lustre) do not strictly maintain an accurate SA_ZPL_SIZE.
*/
boolean_t
zfs_dirempty(znode_t *dzp)
{
- return (dzp->z_size == 2 && dzp->z_dirlocks == 0);
+ zfsvfs_t *zfsvfs = ZTOZSB(dzp);
+ uint64_t count;
+ int error;
+
+ if (dzp->z_dirlocks != NULL)
+ return (B_FALSE);
+
+ error = zap_count(zfsvfs->z_os, dzp->z_id, &count);
+ if (error != 0 || count != 0)
+ return (B_FALSE);
+
+ return (B_TRUE);
}
int
--
2.14.2
@@ -1,70 +0,0 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Richard Yao <ryao@gentoo.org>
Date: Tue, 9 Jan 2018 19:18:19 -0500
Subject: [PATCH] Fix incompatibility with Reiser4 patched kernels
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
In ZFSOnLinux, our sources and build system are self contained such that
we do not need to make changes to the Linux kernel sources. Reiser4 on
the other hand exists solely as a kernel tree patch and opts to make
changes to the kernel rather than adapt to it. After Linux 4.1 made a
VFS change that replaced new_sync_read with do_sync_read, Reiser4's
maintainer decided to modify the kernel VFS to export the old function.
This caused our autotools check to misidentify the kernel API as
predating Linux 4.1 on kernels that have been patched with Reiser4
support, which breaks our build.
Reiser4 really should be patched to stop doing this, but lets modify our
check to be more strict to help the affected users of both filesystems.
Also, we were not checking the types of arguments and return value of
new_sync_read() and new_sync_write() . Lets fix that too.
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Reviewed-by: Giuseppe Di Natale <dinatale2@llnl.gov>
Reviewed-by: George Melikov <mail@gmelikov.ru>
Signed-off-by: Richard Yao <ryao@gentoo.org>
Closes #6241
Closes #7021
(cherry picked from commit ecc8af18125728bf03841ceb48b057e15d96362c)
Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
---
config/kernel-vfs-rw-iterate.m4 | 14 +++++++++++---
1 file changed, 11 insertions(+), 3 deletions(-)
diff --git a/config/kernel-vfs-rw-iterate.m4 b/config/kernel-vfs-rw-iterate.m4
index 9f8fe6559..ace54f707 100644
--- a/config/kernel-vfs-rw-iterate.m4
+++ b/config/kernel-vfs-rw-iterate.m4
@@ -32,15 +32,23 @@ dnl #
dnl # Linux 4.1 API
dnl #
AC_DEFUN([ZFS_AC_KERNEL_NEW_SYNC_READ],
- [AC_MSG_CHECKING([whether new_sync_read() is available])
+ [AC_MSG_CHECKING([whether new_sync_read/write() are available])
ZFS_LINUX_TRY_COMPILE([
#include <linux/fs.h>
],[
- new_sync_read(NULL, NULL, 0, NULL);
+ ssize_t ret __attribute__ ((unused));
+ struct file *filp = NULL;
+ char __user *rbuf = NULL;
+ const char __user *wbuf = NULL;
+ size_t len = 0;
+ loff_t ppos;
+
+ ret = new_sync_read(filp, rbuf, len, &ppos);
+ ret = new_sync_write(filp, wbuf, len, &ppos);
],[
AC_MSG_RESULT(yes)
AC_DEFINE(HAVE_NEW_SYNC_READ, 1,
- [new_sync_read() is available])
+ [new_sync_read()/new_sync_write() are available])
],[
AC_MSG_RESULT(no)
])
--
2.14.2
@@ -1,45 +0,0 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: DeHackEd <DeHackEd@users.noreply.github.com>
Date: Tue, 16 Jan 2018 13:18:08 -0500
Subject: [PATCH] Remove l2arc_nocompress from zfs-module-parameters(5)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Parameter was removed in d3c2ae1c0806
(OpenZFS 6950 - ARC should cache compressed data)
Reviewed by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: DHE <git@dehacked.net>
Closes #7043
(cherry picked from commit 2a7b736dcea1abad62cceb36947e757b98c0e330)
Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
---
man/man5/zfs-module-parameters.5 | 11 -----------
1 file changed, 11 deletions(-)
diff --git a/man/man5/zfs-module-parameters.5 b/man/man5/zfs-module-parameters.5
index 4c957029d..19e6becfd 100644
--- a/man/man5/zfs-module-parameters.5
+++ b/man/man5/zfs-module-parameters.5
@@ -96,17 +96,6 @@ successfully compressed before writing. A value of 100 disables this feature.
Default value: \fB200\fR.
.RE
-.sp
-.ne 2
-.na
-\fBl2arc_nocompress\fR (int)
-.ad
-.RS 12n
-Skip compressing L2ARC buffers
-.sp
-Use \fB1\fR for yes and \fB0\fR for no (default).
-.RE
-
.sp
.ne 2
.na
--
2.14.2
@@ -1,93 +0,0 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Brian Behlendorf <behlendorf1@llnl.gov>
Date: Wed, 17 Jan 2018 10:17:16 -0800
Subject: [PATCH] Fix shellcheck v0.4.6 warnings
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Resolve new warnings reported after upgrading to shellcheck
version 0.4.6. This patch contains no functional changes.
* egrep is non-standard and deprecated. Use grep -E instead. [SC2196]
* Check exit code directly with e.g. 'if mycmd;', not indirectly
with $?. [SC2181] Suppressed.
Reviewed-by: George Melikov <mail@gmelikov.ru>
Reviewed-by: Giuseppe Di Natale <dinatale2@llnl.gov>
Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Closes #7040
(cherry picked from commit 9d1a39cec6ba98c33cf0e358d2bac35dc1552d01)
Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
---
cmd/zed/zed.d/zed-functions.sh | 4 ++--
scripts/zloop.sh | 6 +++---
tests/zfs-tests/tests/functional/acl/acl_common.kshlib | 2 +-
3 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/cmd/zed/zed.d/zed-functions.sh b/cmd/zed/zed.d/zed-functions.sh
index b7de5104f..ed6a95914 100644
--- a/cmd/zed/zed.d/zed-functions.sh
+++ b/cmd/zed/zed.d/zed-functions.sh
@@ -397,7 +397,7 @@ zed_rate_limit()
zed_lock "${lockfile}" "${lockfile_fd}"
time_now="$(date +%s)"
- time_prev="$(egrep "^[0-9]+;${tag}\$" "${statefile}" 2>/dev/null \
+ time_prev="$(grep -E "^[0-9]+;${tag}\$" "${statefile}" 2>/dev/null \
| tail -1 | cut -d\; -f1)"
if [ -n "${time_prev}" ] \
@@ -406,7 +406,7 @@ zed_rate_limit()
else
umask_bak="$(umask)"
umask 077
- egrep -v "^[0-9]+;${tag}\$" "${statefile}" 2>/dev/null \
+ grep -E -v "^[0-9]+;${tag}\$" "${statefile}" 2>/dev/null \
> "${statefile}.$$"
echo "${time_now};${tag}" >> "${statefile}.$$"
mv -f "${statefile}.$$" "${statefile}"
diff --git a/scripts/zloop.sh b/scripts/zloop.sh
index 854c2048a..03e825059 100755
--- a/scripts/zloop.sh
+++ b/scripts/zloop.sh
@@ -70,12 +70,12 @@ function or_die
# core file helpers
origcorepattern="$(cat /proc/sys/kernel/core_pattern)"
-coreglob="$(egrep -o '^([^|%[:space:]]*)' /proc/sys/kernel/core_pattern)*"
+coreglob="$(grep -E -o '^([^|%[:space:]]*)' /proc/sys/kernel/core_pattern)*"
if [[ $coreglob = "*" ]]; then
echo "Setting core file pattern..."
echo "core" > /proc/sys/kernel/core_pattern
- coreglob="$(egrep -o '^([^|%[:space:]]*)' \
+ coreglob="$(grep -E -o '^([^|%[:space:]]*)' \
/proc/sys/kernel/core_pattern)*"
fi
@@ -235,7 +235,7 @@ while [[ $timeout -eq 0 ]] || [[ $curtime -le $((starttime + timeout)) ]]; do
echo "$desc" >>ztest.out
$cmd >>ztest.out 2>&1
ztrc=$?
- egrep '===|WARNING' ztest.out >>ztest.history
+ grep -E '===|WARNING' ztest.out >>ztest.history
$ZDB -U "$workdir/zpool.cache" -DD ztest >>ztest.ddt
store_core
diff --git a/tests/zfs-tests/tests/functional/acl/acl_common.kshlib b/tests/zfs-tests/tests/functional/acl/acl_common.kshlib
index def25d390..75bb82455 100644
--- a/tests/zfs-tests/tests/functional/acl/acl_common.kshlib
+++ b/tests/zfs-tests/tests/functional/acl/acl_common.kshlib
@@ -410,7 +410,7 @@ function get_xattr #<obj>
fi
for xattr in `runat $obj ls | \
- /usr/xpg4/bin/egrep -v -e SUNWattr_ro -e SUNWattr_rw` ; do
+ grep -E -v -e SUNWattr_ro -e SUNWattr_rw` ; do
runat $obj sum $xattr
done
}
--
2.14.2
@@ -1,72 +0,0 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: LOLi <loli10K@users.noreply.github.com>
Date: Thu, 18 Jan 2018 19:15:41 +0100
Subject: [PATCH] Fix Debian packaging on ARMv7/ARM64
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
When building packages on Debian-based systems specify the target
architecture used by 'alien' to convert .rpm packages into .deb: this
avoids detecting an incorrect value which results in the following
errors:
<package>.aarch64.rpm is for architecture aarch64 ; the package cannot be built on this system
<package>.armv7l.rpm is for architecture armel ; the package cannot be built on this system
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Reviewed-by: George Melikov <mail@gmelikov.ru>
Signed-off-by: loli10K <ezomori.nozomu@gmail.com>
Closes #7046
Closes #7058
(cherry picked from commit 5b8ec2cf391f2b7fb2b3a254b4ec9cf9664a2502)
Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
---
config/deb.am | 9 ++++++---
1 file changed, 6 insertions(+), 3 deletions(-)
diff --git a/config/deb.am b/config/deb.am
index 98e98e45f..1b51f9316 100644
--- a/config/deb.am
+++ b/config/deb.am
@@ -18,8 +18,9 @@ deb-kmod: deb-local rpm-kmod
name=${PACKAGE}; \
version=${VERSION}-${RELEASE}; \
arch=`$(RPM) -qp $${name}-kmod-$${version}.src.rpm --qf %{arch} | tail -1`; \
+ debarch=`$(DPKG) --print-architecture`; \
pkg1=kmod-$${name}*$${version}.$${arch}.rpm; \
- fakeroot $(ALIEN) --bump=0 --scripts --to-deb $$pkg1; \
+ fakeroot $(ALIEN) --bump=0 --scripts --to-deb --target=$$debarch $$pkg1; \
$(RM) $$pkg1
@@ -27,14 +28,16 @@ deb-dkms: deb-local rpm-dkms
name=${PACKAGE}; \
version=${VERSION}-${RELEASE}; \
arch=`$(RPM) -qp $${name}-dkms-$${version}.src.rpm --qf %{arch} | tail -1`; \
+ debarch=`$(DPKG) --print-architecture`; \
pkg1=$${name}-dkms-$${version}.$${arch}.rpm; \
- fakeroot $(ALIEN) --bump=0 --scripts --to-deb $$pkg1; \
+ fakeroot $(ALIEN) --bump=0 --scripts --to-deb --target=$$debarch $$pkg1; \
$(RM) $$pkg1
deb-utils: deb-local rpm-utils
name=${PACKAGE}; \
version=${VERSION}-${RELEASE}; \
arch=`$(RPM) -qp $${name}-$${version}.src.rpm --qf %{arch} | tail -1`; \
+ debarch=`$(DPKG) --print-architecture`; \
pkg1=$${name}-$${version}.$${arch}.rpm; \
pkg2=libnvpair1-$${version}.$${arch}.rpm; \
pkg3=libuutil1-$${version}.$${arch}.rpm; \
@@ -57,7 +60,7 @@ deb-utils: deb-local rpm-utils
## which should NOT be mixed with the alien-generated debs created here
chmod +x $${path_prepend}/dh_shlibdeps; \
env PATH=$${path_prepend}:$${PATH} \
- fakeroot $(ALIEN) --bump=0 --scripts --to-deb \
+ fakeroot $(ALIEN) --bump=0 --scripts --to-deb --target=$$debarch \
$$pkg1 $$pkg2 $$pkg3 $$pkg4 $$pkg5 $$pkg6 $$pkg7 \
$$pkg8 $$pkg9; \
$(RM) $${path_prepend}/dh_shlibdeps; \
--
2.14.2
@@ -1,86 +0,0 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Alexander Motin <mav@FreeBSD.org>
Date: Mon, 20 Nov 2017 19:56:01 +0200
Subject: [PATCH] OpenZFS 8835 - Speculative prefetch in ZFS not working for
misaligned reads
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
In case of misaligned I/O sequential requests are not detected as such
due to overlaps in logical block sequence:
dmu_zfetch(fffff80198dd0ae0, 27347, 9, 1)
dmu_zfetch(fffff80198dd0ae0, 27355, 9, 1)
dmu_zfetch(fffff80198dd0ae0, 27363, 9, 1)
dmu_zfetch(fffff80198dd0ae0, 27371, 9, 1)
dmu_zfetch(fffff80198dd0ae0, 27379, 9, 1)
dmu_zfetch(fffff80198dd0ae0, 27387, 9, 1)
This patch makes single block overlap to be counted as a stream hit,
improving performance up to several times.
Authored by: Alexander Motin <mav@FreeBSD.org>
Approved by: Gordon Ross <gwr@nexenta.com>
Reviewed by: Matthew Ahrens <mahrens@delphix.com>
Reviewed by: Allan Jude <allanjude@freebsd.org>
Reviewed by: Gvozden Neskovic <neskovic@gmail.com>
Reviewed by: George Melikov <mail@gmelikov.ru>
Ported-by: Brian Behlendorf <behlendorf1@llnl.gov>
OpenZFS-issue: https://www.illumos.org/issues/8835
OpenZFS-commit: https://github.com/openzfs/openzfs/commit/aab6dd482a
Closes #7062
(cherry picked from commit 701ebd014af3a0c7485056d8c96ecfb379867fd8)
Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
---
module/zfs/dmu_zfetch.c | 24 +++++++++++++++++++-----
1 file changed, 19 insertions(+), 5 deletions(-)
diff --git a/module/zfs/dmu_zfetch.c b/module/zfs/dmu_zfetch.c
index 1bf5c4e34..e72e9ef9c 100644
--- a/module/zfs/dmu_zfetch.c
+++ b/module/zfs/dmu_zfetch.c
@@ -228,19 +228,33 @@ dmu_zfetch(zfetch_t *zf, uint64_t blkid, uint64_t nblks, boolean_t fetch_data)
rw_enter(&zf->zf_rwlock, RW_READER);
+ /*
+ * Find matching prefetch stream. Depending on whether the accesses
+ * are block-aligned, first block of the new access may either follow
+ * the last block of the previous access, or be equal to it.
+ */
for (zs = list_head(&zf->zf_stream); zs != NULL;
zs = list_next(&zf->zf_stream, zs)) {
- if (blkid == zs->zs_blkid) {
+ if (blkid == zs->zs_blkid || blkid + 1 == zs->zs_blkid) {
mutex_enter(&zs->zs_lock);
/*
* zs_blkid could have changed before we
* acquired zs_lock; re-check them here.
*/
- if (blkid != zs->zs_blkid) {
- mutex_exit(&zs->zs_lock);
- continue;
+ if (blkid == zs->zs_blkid) {
+ break;
+ } else if (blkid + 1 == zs->zs_blkid) {
+ blkid++;
+ nblks--;
+ if (nblks == 0) {
+ /* Already prefetched this before. */
+ mutex_exit(&zs->zs_lock);
+ rw_exit(&zf->zf_rwlock);
+ return;
+ }
+ break;
}
- break;
+ mutex_exit(&zs->zs_lock);
}
}
--
2.14.2
@@ -1,67 +0,0 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Don Brady <dev.fs.zfs@gmail.com>
Date: Thu, 21 Sep 2017 11:17:56 -0600
Subject: [PATCH] Cleanup zloop working directory after each pass
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Reviewed-by: George Melikov <mail@gmelikov.ru>
Reviewed-by: Giuseppe Di Natale <dinatale2@llnl.gov>
Reviewed by: John Kennedy <jwk404@gmail.com>
Reviewed-by: Olaf Faaland <faaland1@llnl.gov>
Signed-off-by: Don Brady <don.brady@delphix.com>
Issue #6595
Closes #6663
(cherry picked from commit d1630dda5857175bad0ac7f6e142ae299606d88a)
Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
---
scripts/zloop.sh | 11 +++++++++--
1 file changed, 9 insertions(+), 2 deletions(-)
diff --git a/scripts/zloop.sh b/scripts/zloop.sh
index 03e825059..f0af87553 100755
--- a/scripts/zloop.sh
+++ b/scripts/zloop.sh
@@ -101,6 +101,7 @@ function store_core
{
core="$(core_file)"
if [[ $ztrc -ne 0 ]] || [[ -f "$core" ]]; then
+ df -h "$workdir" >>ztest.out
coreid=$(date "+zloop-%y%m%d-%H%M%S")
foundcrashes=$((foundcrashes + 1))
@@ -150,7 +151,8 @@ function store_core
# parse arguments
# expected format: zloop [-t timeout] [-c coredir] [-- extra ztest args]
coredir=$DEFAULTCOREDIR
-workdir=$DEFAULTWORKDIR
+basedir=$DEFAULTWORKDIR
+rundir="zloop-run"
timeout=0
size="512m"
while getopts ":ht:s:c:f:" opt; do
@@ -158,7 +160,7 @@ while getopts ":ht:s:c:f:" opt; do
t ) [[ $OPTARG -gt 0 ]] && timeout=$OPTARG ;;
s ) [[ $OPTARG ]] && size=$OPTARG ;;
c ) [[ $OPTARG ]] && coredir=$OPTARG ;;
- f ) [[ $OPTARG ]] && workdir=$(readlink -f "$OPTARG") ;;
+ f ) [[ $OPTARG ]] && basedir=$(readlink -f "$OPTARG") ;;
h ) usage
exit 2
;;
@@ -202,6 +204,11 @@ curtime=$starttime
while [[ $timeout -eq 0 ]] || [[ $curtime -le $((starttime + timeout)) ]]; do
zopt="-VVVVV"
+ # start each run with an empty directory
+ workdir="$basedir/$rundir"
+ or_die rm -rf "$workdir"
+ or_die mkdir "$workdir"
+
# switch between common arrangements & fully randomized
if [[ $((RANDOM % 2)) -eq 0 ]]; then
mirrors=2
--
2.14.2
@@ -1,165 +0,0 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Brian Behlendorf <behlendorf1@llnl.gov>
Date: Mon, 22 Jan 2018 12:48:39 -0800
Subject: [PATCH] Extend zloop.sh for automated testing
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
In order to debug issues encountered by ztest during automated
testing it's important that as much debugging information as
possible by dumped at the time of the failure. The following
changes extend the zloop.sh script in order to make it easier
to integrate with buildbot.
* Add the `-m <maximum cores>` option to zloop.sh to place a
limit of the number of core dumps generated. By default, the
existing behavior is maintained and no limit is set.
* Add the `-l` option to create a 'ztest.core.N' symlink in the
current directory to the core directory. This functionality
is provided primarily for buildbot which expects log files to
have well known names.
* Rename 'ztest.ddt' to 'ztest.zdb' and extend it to dump
additional basic information on failure for latter analysis.
Reviewed-by: Tim Chase <tim@chase2k.com>
Reviewed by: Thomas Caputi <tcaputi@datto.com>
Reviewed-by: Giuseppe Di Natale <dinatale2@llnl.gov>
Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Closes #6999
Conflicts:
scripts/zloop.sh
(cherry picked from commit 137b3e6cff5552c5b0e137008fd274ad9a6f7a0d)
Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
---
scripts/zloop.sh | 42 ++++++++++++++++++++++++++++++++----------
1 file changed, 32 insertions(+), 10 deletions(-)
diff --git a/scripts/zloop.sh b/scripts/zloop.sh
index f0af87553..f39e91ef9 100755
--- a/scripts/zloop.sh
+++ b/scripts/zloop.sh
@@ -52,6 +52,8 @@ function usage
" -s Size of vdev devices.\n" \
" -f Specify working directory for ztest vdev files.\n" \
" -c Specify a core dump directory to use.\n" \
+ " -m Max number of core dumps to allow before exiting.\n" \
+ " -l Create 'ztest.core.N' symlink to core directory.\n" \
" -h Print this help message.\n" \
"" >&2
}
@@ -105,14 +107,24 @@ function store_core
coreid=$(date "+zloop-%y%m%d-%H%M%S")
foundcrashes=$((foundcrashes + 1))
+ # zdb debugging
+ zdbcmd="$ZDB -U "$workdir/zpool.cache" -dddMmDDG ztest"
+ zdbdebug=$($zdbcmd 2>&1)
+ echo -e "$zdbcmd\n" >>ztest.zdb
+ echo "$zdbdebug" >>ztest.zdb
+
dest=$coredir/$coreid
or_die mkdir -p "$dest"
or_die mkdir -p "$dest/vdev"
+ if [[ $symlink -ne 0 ]]; then
+ or_die ln -sf "$dest" ztest.core.$foundcrashes
+ fi
+
echo "*** ztest crash found - moving logs to $dest"
or_die mv ztest.history "$dest/"
- or_die mv ztest.ddt "$dest/"
+ or_die mv ztest.zdb "$dest/"
or_die mv ztest.out "$dest/"
or_die mv "$workdir/ztest*" "$dest/vdev/"
or_die mv "$workdir/zpool.cache" "$dest/vdev/"
@@ -120,7 +132,7 @@ function store_core
# check for core
if [[ -f "$core" ]]; then
coreprog=$(core_prog "$core")
- corestatus=$($GDB --batch --quiet \
+ coredebug=$($GDB --batch --quiet \
-ex "set print thread-events off" \
-ex "printf \"*\n* Backtrace \n*\n\"" \
-ex "bt" \
@@ -132,19 +144,25 @@ function store_core
-ex "thread apply all bt" \
-ex "printf \"*\n* Backtraces (full) \n*\n\"" \
-ex "thread apply all bt full" \
- -ex "quit" "$coreprog" "$core" | grep -v "New LWP")
+ -ex "quit" "$coreprog" "$core" 2>&1 | \
+ grep -v "New LWP")
# Dump core + logs to stored directory
- echo "$corestatus" >>"$dest/status"
+ echo "$coredebug" >>"$dest/ztest.gdb"
or_die mv "$core" "$dest/"
# Record info in cores logfile
echo "*** core @ $coredir/$coreid/$core:" | \
tee -a ztest.cores
- echo "$corestatus" | tee -a ztest.cores
- echo "" | tee -a ztest.cores
fi
- echo "continuing..."
+
+ if [[ $coremax -gt 0 ]] &&
+ [[ $foundcrashes -ge $coremax ]]; then
+ echo "exiting... max $coremax allowed cores"
+ exit 1
+ else
+ echo "continuing..."
+ fi
fi
}
@@ -155,12 +173,16 @@ basedir=$DEFAULTWORKDIR
rundir="zloop-run"
timeout=0
size="512m"
-while getopts ":ht:s:c:f:" opt; do
+coremax=0
+symlink=0
+while getopts ":ht:m:s:c:f:l" opt; do
case $opt in
t ) [[ $OPTARG -gt 0 ]] && timeout=$OPTARG ;;
+ m ) [[ $OPTARG -gt 0 ]] && coremax=$OPTARG ;;
s ) [[ $OPTARG ]] && size=$OPTARG ;;
c ) [[ $OPTARG ]] && coredir=$OPTARG ;;
f ) [[ $OPTARG ]] && basedir=$(readlink -f "$OPTARG") ;;
+ l ) symlink=1 ;;
h ) usage
exit 2
;;
@@ -178,6 +200,7 @@ ulimit -c unlimited
if [[ -f "$(core_file)" ]]; then
echo -n "There's a core dump here you might want to look at first... "
core_file
+ echo
exit 1
fi
@@ -192,7 +215,7 @@ if [[ ! -w $coredir ]]; then
fi
or_die rm -f ztest.history
-or_die rm -f ztest.ddt
+or_die rm -f ztest.zdb
or_die rm -f ztest.cores
ztrc=0 # ztest return value
@@ -243,7 +266,6 @@ while [[ $timeout -eq 0 ]] || [[ $curtime -le $((starttime + timeout)) ]]; do
$cmd >>ztest.out 2>&1
ztrc=$?
grep -E '===|WARNING' ztest.out >>ztest.history
- $ZDB -U "$workdir/zpool.cache" -DD ztest >>ztest.ddt
store_core
--
2.14.2
@@ -1,101 +0,0 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: LOLi <loli10K@users.noreply.github.com>
Date: Wed, 31 Jan 2018 00:54:33 +0100
Subject: [PATCH] Fix 'zfs receive -o' when used with '-e|-d'
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
When used in conjunction with one of '-e' or '-d' zfs receive options
none of the properties requested to be set (-o) are actually applied:
this is caused by a wrong assumption made about the toplevel dataset
in zfs_receive_one().
Fix this by correctly detecting the toplevel dataset.
Reviewed-by: Tony Hutter <hutter2@llnl.gov>
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: loli10K <ezomori.nozomu@gmail.com>
Closes #7088
Requires-spl: refs/pull/679/head
(cherry picked from commit 2f62fdd6447b1a765dfea3cc5bf9e35dc0901aff)
Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
---
lib/libzfs/libzfs_sendrecv.c | 5 +--
.../zfs_receive/receive-o-x_props_override.ksh | 36 ++++++++++++++++++++++
2 files changed, 39 insertions(+), 2 deletions(-)
diff --git a/lib/libzfs/libzfs_sendrecv.c b/lib/libzfs/libzfs_sendrecv.c
index db8079fb3..ec190022f 100644
--- a/lib/libzfs/libzfs_sendrecv.c
+++ b/lib/libzfs/libzfs_sendrecv.c
@@ -3252,7 +3252,7 @@ zfs_receive_one(libzfs_handle_t *hdl, int infd, const char *tosnap,
nvlist_t *oxprops = NULL; /* override (-o) and exclude (-x) props */
nvlist_t *origprops = NULL; /* original props (if destination exists) */
zfs_type_t type;
- boolean_t toplevel;
+ boolean_t toplevel = B_FALSE;
boolean_t zoned = B_FALSE;
begin_time = time(NULL);
@@ -3586,7 +3586,8 @@ zfs_receive_one(libzfs_handle_t *hdl, int infd, const char *tosnap,
goto out;
}
- toplevel = chopprefix[0] != '/';
+ if (top_zfs && *top_zfs == NULL)
+ toplevel = B_TRUE;
if (drrb->drr_type == DMU_OST_ZVOL) {
type = ZFS_TYPE_VOLUME;
} else if (drrb->drr_type == DMU_OST_ZFS) {
diff --git a/tests/zfs-tests/tests/functional/cli_root/zfs_receive/receive-o-x_props_override.ksh b/tests/zfs-tests/tests/functional/cli_root/zfs_receive/receive-o-x_props_override.ksh
index 7137fe278..e4e69851f 100755
--- a/tests/zfs-tests/tests/functional/cli_root/zfs_receive/receive-o-x_props_override.ksh
+++ b/tests/zfs-tests/tests/functional/cli_root/zfs_receive/receive-o-x_props_override.ksh
@@ -371,6 +371,42 @@ log_must eval "check_prop_source $dest type filesystem -"
log_must eval "check_prop_source $dest atime off local"
log_must eval "check_prop_source $destsub type volume -"
log_must eval "check_prop_source $destsub atime - -"
+# Cleanup
+log_must zfs destroy -r -f $orig
+log_must zfs destroy -r -f $dest
+
+#
+# 3.8 Verify 'zfs recv -x|-o' works correctly when used in conjunction with -d
+# and -e options.
+#
+log_must zfs create -p $orig/1/2/3/4
+log_must eval "zfs set copies=2 $orig"
+log_must eval "zfs set atime=on $orig"
+log_must eval "zfs set '$userprop:orig'='oldval' $orig"
+log_must zfs snapshot -r $orig@snap1
+log_must eval "zfs send -R $orig/1/2@snap1 > $streamfile_repl"
+# Verify 'zfs recv -e'
+log_must zfs create $dest
+log_must eval "zfs receive -e -o copies=3 -x atime "\
+ "-o '$userprop:orig'='newval' $dest < $streamfile_repl"
+log_must datasetexists $dest/2/3/4
+log_must eval "check_prop_source $dest/2 copies 3 local"
+log_must eval "check_prop_inherit $dest/2/3/4 copies $dest/2"
+log_must eval "check_prop_source $dest/2/3/4 atime on default"
+log_must eval "check_prop_source $dest/2 '$userprop:orig' 'newval' local"
+log_must eval "check_prop_inherit $dest/2/3/4 '$userprop:orig' $dest/2"
+log_must zfs destroy -r -f $dest
+# Verify 'zfs recv -d'
+log_must zfs create $dest
+typeset fs="$(echo $orig | awk -F'/' '{print $NF}')"
+log_must eval "zfs receive -d -o copies=3 -x atime "\
+ "-o '$userprop:orig'='newval' $dest < $streamfile_repl"
+log_must datasetexists $dest/$fs/1/2/3/4
+log_must eval "check_prop_source $dest/$fs/1/2 copies 3 local"
+log_must eval "check_prop_inherit $dest/$fs/1/2/3/4 copies $dest/$fs/1/2"
+log_must eval "check_prop_source $dest/$fs/1/2/3/4 atime on default"
+log_must eval "check_prop_source $dest/$fs/1/2 '$userprop:orig' 'newval' local"
+log_must eval "check_prop_inherit $dest/$fs/1/2/3/4 '$userprop:orig' $dest/$fs/1/2"
# We don't need to cleanup here
log_pass "ZFS receive property override and exclude options passed."
--
2.14.2
-63
View File
@@ -1,63 +0,0 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Tony Hutter <hutter2@llnl.gov>
Date: Thu, 1 Feb 2018 10:02:58 -0800
Subject: [PATCH] Tag zfs-0.7.6
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
META file and changelog updated.
Signed-off-by: Tony Hutter <hutter2@llnl.gov>
(cherry picked from commit e3b28e16ceaf59d7f550a149f863b2cfe67cf4ad)
Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
---
rpm/generic/zfs-kmod.spec.in | 3 +++
rpm/generic/zfs.spec.in | 3 +++
META | 2 +-
3 files changed, 7 insertions(+), 1 deletion(-)
diff --git a/rpm/generic/zfs-kmod.spec.in b/rpm/generic/zfs-kmod.spec.in
index f4c92b998..cb23b0a8f 100644
--- a/rpm/generic/zfs-kmod.spec.in
+++ b/rpm/generic/zfs-kmod.spec.in
@@ -191,6 +191,9 @@ chmod u+x ${RPM_BUILD_ROOT}%{kmodinstdir_prefix}/*/extra/*/*/*
rm -rf $RPM_BUILD_ROOT
%changelog
+* Thu Feb 01 2018 Tony Hutter <hutter2@llnl.gov> - 0.7.6-1
+- Released 0.7.6-1, detailed release notes are available at:
+- https://github.com/zfsonlinux/zfs/releases/tag/zfs-0.7.6
* Mon Dec 18 2017 Tony Hutter <hutter2@llnl.gov> - 0.7.5-1
- Released 0.7.5-1, detailed release notes are available at:
- https://github.com/zfsonlinux/zfs/releases/tag/zfs-0.7.5
diff --git a/rpm/generic/zfs.spec.in b/rpm/generic/zfs.spec.in
index afa45268a..8df57fa46 100644
--- a/rpm/generic/zfs.spec.in
+++ b/rpm/generic/zfs.spec.in
@@ -333,6 +333,9 @@ exit 0
%endif
%changelog
+* Thu Feb 01 2018 Tony Hutter <hutter2@llnl.gov> - 0.7.6-1
+- Released 0.7.6-1, detailed release notes are available at:
+- https://github.com/zfsonlinux/zfs/releases/tag/zfs-0.7.6
* Mon Dec 18 2017 Tony Hutter <hutter2@llnl.gov> - 0.7.5-1
- Released 0.7.5-1, detailed release notes are available at:
- https://github.com/zfsonlinux/zfs/releases/tag/zfs-0.7.5
diff --git a/META b/META
index 8bcb520b6..1f4686df7 100644
--- a/META
+++ b/META
@@ -1,7 +1,7 @@
Meta: 1
Name: zfs
Branch: 1.0
-Version: 0.7.5
+Version: 0.7.6
Release: 1
Release-Tags: relext
License: CDDL
--
2.14.2
@@ -1,73 +0,0 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Fabian=20Gr=C3=BCnbichler?= <f.gruenbichler@proxmox.com>
Date: Wed, 21 Feb 2018 09:40:06 +0100
Subject: [PATCH] Revert "cherry-pick: fix distclean which removes needed
files"
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
This reverts commit b7361d56f7039ad69e93e3e9b647da69b5fb647a.
Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
---
...g-in-distclean-which-removes-needed-files.patch | 36 ----------------------
debian/patches/series | 1 -
2 files changed, 37 deletions(-)
delete mode 100644 debian/patches/0001-Fix-bug-in-distclean-which-removes-needed-files.patch
diff --git a/debian/patches/0001-Fix-bug-in-distclean-which-removes-needed-files.patch b/debian/patches/0001-Fix-bug-in-distclean-which-removes-needed-files.patch
deleted file mode 100644
index e16758b03..000000000
--- a/debian/patches/0001-Fix-bug-in-distclean-which-removes-needed-files.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-From b1490dd43e3c98649c7d23928d908f5bb019411b Mon Sep 17 00:00:00 2001
-From: David Quigley <dpquigl@users.noreply.github.com>
-Date: Wed, 13 Sep 2017 12:45:04 -0600
-Subject: [PATCH 001/144] Fix bug in distclean which removes needed files
-
-Running distclean removes the following files because of an error
-in Makefile.am
-
-deleted: tests/zfs-tests/include/commands.cfg
-deleted: tests/zfs-tests/include/libtest.shlib
-deleted: tests/zfs-tests/include/math.shlib
-deleted: tests/zfs-tests/include/properties.shlib
-deleted: tests/zfs-tests/include/zpool_script.shlib
-
-Reviewed-by: George Melikov <mail@gmelikov.ru>
-Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
-Reviewed-by: Giuseppe Di Natale <dinatale2@llnl.gov>
-Signed-off-by: David Quigley <david.quigley@intel.com>
-Closes #6636
----
- tests/zfs-tests/include/Makefile.am | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/tests/zfs-tests/include/Makefile.am b/tests/zfs-tests/include/Makefile.am
-index 579e1356e..24633ccc3 100644
---- a/tests/zfs-tests/include/Makefile.am
-+++ b/tests/zfs-tests/include/Makefile.am
-@@ -10,4 +10,4 @@ dist_pkgdata_SCRIPTS = \
- EXTRA_DIST=default.cfg.in
-
- distclean-local::
-- -$(RM) $(dist_pkgdata_SCRIPTS)
-+ -$(RM) default.cfg
---
-2.11.0
-
diff --git a/debian/patches/series b/debian/patches/series
index e4189aa05..6d5874440 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -7,5 +7,4 @@ enable-zed.patch
0008-dracut-make-module-setup.sh-shebang-explicit.patch
0009-add-man-page-reference-to-systemd-units.patch
0010-fix-install-path-of-zpool.d-scripts.patch
-0001-Fix-bug-in-distclean-which-removes-needed-files.patch
2000-increase-default-zcmd-allocation-to-256K.patch
--
2.14.2
-37
View File
@@ -1,37 +0,0 @@
0001-remove-DKMS-modules-and-dracut-build.patch
0002-import-with-d-dev-disk-by-id-in-scan-service.patch
0003-Use-user-namespaces-for-FSETID-policy-check.patch
0004-Fix-ARC-hit-rate.patch
0005-always-load-ZFS-module-on-boot.patch
0006-Use-sbin-openrc-run-for-openrc-init-scripts.patch
0007-vdev_mirror-load-balancing-fixes.patch
0008-Fix-zfs_ioc_pool_sync-should-not-use-fnvlist.patch
0009-dmu_objset-release-bonus-buffer-in-failure-path.patch
0010-Fix-bug-in-distclean-which-removes-needed-files.patch
0011-Rewrite-of-function-fBytes-in-arc_summary.py.patch
0012-Minor-code-cleanup-in-arc_summary.py.patch
0013-Rewrite-fHits-in-arc_summary.py-with-SI-units.patch
0014-Add-documentation-strings-to-arc_summary.py.patch
0015-Sort-output-of-tunables-in-arc_summary.py.patch
0016-Fix-arc_summary.py-d-crash-with-Python3.patch
0017-Minor-code-cleanups-in-arc_python.py.patch
0018-Fix-data-on-evict_skips-in-arc_summary.py.patch
0019-Update-for-cppcheck-v1.80.patch
0020-OpenZFS-8794-cstyle-generates-warnings-with-recent-p.patch
0021-Handle-invalid-options-in-arc_summary.patch
0022-Handle-broken-pipes-in-arc_summary.patch
0023-Call-commit-callbacks-from-the-tail-of-the-list.patch
0024-Fix-zpool-add-handling-of-nested-interior-VDEVs.patch
0025-zhack-fix-getopt-return-type.patch
0026-Revert-raidz_map-and-_col-structure-types.patch
0027-Use-zap_count-instead-of-cached-z_size-for-unlink.patch
0028-Fix-incompatibility-with-Reiser4-patched-kernels.patch
0029-Remove-l2arc_nocompress-from-zfs-module-parameters-5.patch
0030-Fix-shellcheck-v0.4.6-warnings.patch
0031-Fix-Debian-packaging-on-ARMv7-ARM64.patch
0032-OpenZFS-8835-Speculative-prefetch-in-ZFS-not-working.patch
0033-Cleanup-zloop-working-directory-after-each-pass.patch
0034-Extend-zloop.sh-for-automated-testing.patch
0035-Fix-zfs-receive-o-when-used-with-e-d.patch
0036-Tag-zfs-0.7.6.patch
0037-Revert-cherry-pick-fix-distclean-which-removes-neede.patch
+691
View File
@@ -0,0 +1,691 @@
zfs-linux (0.7.13-pve1~bpo2) unstable; urgency=medium
* remove conflict with insserv (<< 1.18)
-- Proxmox Support Team <support@proxmox.com> Wed, 27 Mar 2019 09:56:15 +0100
zfs-linux (0.7.13-pve1~bpo1) unstable; urgency=medium
* update ZFS to 0.7.13
* base zfs-linux on upstream ZOL instead of debian
-- Proxmox Support Team <support@proxmox.com> Fri, 08 Mar 2019 06:53:00 +0100
zfs-linux (0.7.12-pve1~bpo1) unstable; urgency=medium
* update ZFS to 0.7.12
-- Proxmox Support Team <support@proxmox.com> Wed, 14 Nov 2018 17:51:59 +0100
zfs-linux (0.7.11-pve2~bpo1) unstable; urgency=medium
* update ZFS to debian/0.7.11-3
* Cherry-pick two fixes planned for 0.7.12
* Backport deadlock fix between mm_sem and tx assign in zfs_write() and page
fault
* Fix missing Breaks/Replaces in zfs-initramfs
-- Proxmox Support Team <support@proxmox.com> Mon, 29 Oct 2018 13:45:49 +0100
zfs-linux (0.7.11-pve1~bpo1) unstable; urgency=medium
* update ZFS to 0.7.11
-- Proxmox Support Team <support@proxmox.com> Mon, 10 Sep 2018 15:47:31 +0200
zfs-linux (0.7.9-pve3~bpo9) unstable; urgency=medium
* Cherry-pick fix for deadlock umount/snapentry_expire
-- Proxmox Support Team <support@proxmox.com> Fri, 03 Aug 2018 11:41:11 +0200
zfs-linux (0.7.9-pve2~bpo9) unstable; urgency=medium
* Cherry-pick fix for zpl_mount deadlock
-- Proxmox Support Team <support@proxmox.com> Fri, 12 Jul 2018 12:37:50 +0200
zfs-linux (0.7.9-pve1~bpo9) unstable; urgency=medium
* update ZFS to 0.7.9
-- Proxmox Support Team <support@proxmox.com> Fri, 18 May 2018 13:49:09 +0200
zfs-linux (0.7.8-pve1~bpo9) unstable; urgency=medium
* update ZFS to 0.7.8 (no changes)
-- Proxmox Support Team <support@proxmox.com> Mon, 30 Apr 2018 13:47:22 +0200
zfs-linux (0.7.7-pve2~bpo9) unstable; urgency=medium
* (temporarily) revert likely cause of #7401
-- Proxmox Support Team <support@proxmox.com> Mon, 9 Apr 2018 09:49:27 +0200
zfs-linux (0.7.7-pve1~bpo9) unstable; urgency=medium
* update ZFS to 0.7.7
-- Proxmox Support Team <support@proxmox.com> Tue, 3 Apr 2018 14:28:35 +0200
zfs-linux (0.7.6-pve1~bpo9) unstable; urgency=medium
* update ZFS to 0.7.6
-- Proxmox Support Team <support@proxmox.com> Wed, 21 Feb 2018 09:48:29 +0100
zfs-linux (0.7.4-pve2~bpo9) unstable; urgency=medium
* cherry-pick ARC hit rate fix from 0.7.6
* always load ZFS modules on boot
-- Proxmox Support Team <support@proxmox.com> Fri, 19 Jan 2018 11:31:14 +0100
zfs-linux (0.7.4-pve1~bpo9) unstable; urgency=medium
* update ZFS to 0.7.4
-- Proxmox Support Team <support@proxmox.com> Tue, 19 Dec 2017 12:52:42 +0100
zfs-linux (0.7.3-pve1~bpo9) unstable; urgency=medium
* update ZFS to 0.7.3
* include fix for user namespace setgid issue (#6800 upstream)
-- Proxmox Support Team <support@proxmox.com> Mon, 6 Nov 2017 09:14:19 +0100
zfs-linux (0.7.2-pve1~bpo90) unstable; urgency=medium
* update zfs to 0.7.2
* add PR 6616 - zfs send/recv compatibility with 0.6.5
* add PR 6695 - zfs recv: don't skip over objects which should be freed
* various small fixes
* split test suite into zfs-test package
-- Proxmox Support Team <support@proxmox.com> Thu, 12 Oct 2017 13:34:05 +0200
zfs-linux (0.6.5.11-pve18~bpo90) unstable; urgency=medium
* fix #1509: arc_summary error with L2ARC
-- Proxmox Support Team <support@proxmox.com> Mon, 2 Oct 2017 09:30:41 +0200
zfs-linux (0.6.5.11-pve17~bpo90) unstable; urgency=medium
* update zfs to debian/0.6.5.11-1
-- Proxmox Support Team <support@proxmox.com> Thu, 27 Jul 2017 13:11:45 +0200
zfs-linux (0.6.5.9-pve16~bpo90) unstable; urgency=medium
* drop transitional packages
* convert python scripts to python 3, drop .py suffix
* rebuild for PVE 5.0 / Debian Stretch
-- Proxmox Support Team <support@proxmox.com> Fri, 10 Mar 2017 09:45:52 +0100
zfs-linux (0.6.5.9-pve15~bpo80) unstable; urgency=medium
* update zfs to debian/0.6.5.9-1
-- Proxmox Support Team <support@proxmox.com> Mon, 6 Feb 2017 12:39:10 +0100
zfs-linux (0.6.5.8-pve14~bpo80) unstable; urgency=medium
* update zfs to debian/0.6.5.8-3
-- Proxmox Support Team <support@proxmox.com> Wed, 11 Jan 2017 09:34:58 +0100
zfs-linux (0.6.5.8-pve13~bpo80) unstable; urgency=medium
* fix #1184: zfs-share.service has wrong path to 'rm' command
-- Proxmox Support Team <support@proxmox.com> Thu, 27 Oct 2016 11:25:47 +0200
zfs-linux (0.6.5.8-pve12~bpo80) unstable; urgency=medium
* import with "-d /dev/disk/by-id" in systemd service
-- Proxmox Support Team <support@proxmox.com> Mon, 24 Oct 2016 13:48:08 +0200
zfs-linux (0.6.5.8-pve11~bpo80) unstable; urgency=medium
* update zfs to debian/0.6.5.8-1
* switch package upstream sources to Debian (Jessie)
* add transitional packages for upgrades
-- Proxmox Support Team <support@proxmox.com> Wed, 12 Oct 2016 11:16:02 +0200
zfs-linux (0.6.5.7-pve10~bpo80) unstable; urgency=medium
* update to pkg-zfs jessie/0.6.5.7-8
* change package versioning to allow upgrades from PVE3/wheezy
-- Proxmox Support Team <support@proxmox.com> Tue, 28 Jun 2016 09:50:00 +0200
zfs-linux (0.6.5-pve9~jessie) unstable; urgency=medium
* Update to pkg-zfs jessie/0.6.5.6-3
-- Proxmox Support Team <support@proxmox.com> Tue, 12 Apr 2016 09:51:35 +0200
zfs-linux (0.6.5-pve8~jessie) unstable; urgency=medium
* update to zfs-0.6.5.6
-- Proxmox Support Team <support@proxmox.com> Wed, 30 Mar 2016 10:50:22 +0200
zfs-linux (0.6.5-pve7~jessie) unstable; urgency=medium
* update to zfs-0.6.5.4
-- Proxmox Support Team <support@proxmox.com> Thu, 14 Jan 2016 10:51:17 +0100
zfs-linux (0.6.5-pve6~jessie) unstable; urgency=medium
* Prepare to tag zfs-0.6.5.3
-- Proxmox Support Team <support@proxmox.com> Thu, 05 Nov 2015 07:21:44 +0100
zfs-linux (0.6.5-pve5~jessie) unstable; urgency=medium
* Illumos 6267 - dn_bonus evicted too early
* Fix use-after-free in vdev_disk_physio_completion
-- Proxmox Support Team <support@proxmox.com> Wed, 04 Nov 2015 17:42:42 +0100
zfs-linux (0.6.5-pve4~jessie) unstable; urgency=medium
* update to master/debian/jessie/0.6.5.2-2
-- Proxmox Support Team <support@proxmox.com> Mon, 05 Oct 2015 17:56:45 +0200
zfs-linux (0.6.5-pve3~jessie) unstable; urgency=medium
* do not install /etc/init.d/zfs-zed script to avoid double startup
with systemd
-- Proxmox Support Team <support@proxmox.com> Mon, 28 Sep 2015 10:14:40 +0200
zfs-linux (0.6.5-pve2~jessie) unstable; urgency=medium
* update to master/debian/jessie/0.6.5.1-4
-- Proxmox Support Team <support@proxmox.com> Thu, 24 Sep 2015 12:45:33 +0200
zfs-linux (0.6.5-pve1~jessie) unstable; urgency=medium
* update to master/debian/jessie/0.6.5.1-2
-- Proxmox Support Team <support@proxmox.com> Mon, 21 Sep 2015 10:02:41 +0200
zfs-linux (0.6.4-pve3~jessie) unstable; urgency=medium
* update to snapshot/debian/jessie/0.6.4-24-6bec43
-- Proxmox Support Team <support@proxmox.com> Mon, 24 Aug 2015 06:13:44 +0200
zfs-linux (0.6.4-pve2~jessie) unstable; urgency=medium
* update to 0.6.4.2 (snapshot/debian/jessie/0.6.4-21-53b1d9)
-- Proxmox Support Team <support@proxmox.com> Tue, 21 Jul 2015 11:03:21 +0200
zfs-linux (0.6.4-pve1~jessie) unstable; urgency=medium
* update to 0.6.4 (use upstream zol package definitions)
-- Proxmox Support Team <support@proxmox.com> Tue, 14 Apr 2015 10:19:22 +0200
zfs-linux (0.6.3-pve3~jessie) unstable; urgency=medium
* ignore zfs-import-scan errors
-- Proxmox Support Team <support@proxmox.com> Tue, 31 Mar 2015 17:52:40 +0200
zfs-linux (0.6.3-pve2~jessie) unstable; urgency=medium
* use systemd for service startup
* install zed configuration file /etc/zfs/zed.d/zed.rc
-- Proxmox Support Team <support@proxmox.com> Sun, 15 Mar 2015 15:52:54 +0100
zfs-linux (0.6.3-pve1~jessie) unstable; urgency=medium
* recompile on jessie
-- Proxmox Support Team <support@proxmox.com> Sat, 28 Feb 2015 16:02:08 +0100
zfs-linux (0.6.3-2~wheezy) unstable; urgency=low
* use /sbin/modprobe to avoid warning inside initrd
* fix warning about undefined values inside initrd
-- Proxmox Support Team <support@proxmox.com> Wed, 14 Jan 2015 19:03:04 +0100
zfs-linux (0.6.3-1~wheezy) unstable; urgency=low
* first version for Proxmox VE
-- Proxmox Support Team <support@proxmox.com> Sat, 10 Jan 2015 14:06:34 +0100
zfs-linux (0.7.12-2) unstable; urgency=medium
[ Colin Ian King ]
* Only run autopkgtests for amd64, arm64, ppc64el and s390x (LP#1805627).
[ Martin Bagge / brother ]
* [INTL:sv] Swedish strings for zfs-linux debconf (Closes: #918020)
[ Anders Jonsson ]
* sv.po: typo fix
[ Mo Zhou ]
* Change init script's behaviour to default during postinst.
* Add ${perl:Depends} to zfs-dkms's Depends.
* Add autopkgtest script to test zfs-dkms build.
* autopkgtest: minor fix
[ Aron Xu ]
* Add XS-Autobuild: yes to d/control
* Conflicts with insserv << 1.18 (Closes: #915831)
-- Aron Xu <aron@debian.org> Fri, 11 Jan 2019 21:32:06 +0800
zfs-linux (0.7.12-1) unstable; urgency=medium
[ Stoiko Ivanov ]
* Add Breaks/Replaces to zfs-initramfs
[ Mo Zhou ]
* New upstream version 0.7.12
* Drop unnecessary patch init-start-stop-dep-on-local-fs.patch .
* Override init.d-script-missing-dependency-on-local_fs for zfs-zed.
* Bump linux compatibility to 4.19 .
-- Mo Zhou <cdluminate@gmail.com> Mon, 19 Nov 2018 11:32:44 +0000
zfs-linux (0.7.11-3) unstable; urgency=medium
[ Antonio Russo ]
+ https://salsa.debian.org/zfsonlinux-team/zfs/merge_requests/9
* Break/Replace upstream .deb packages (Closes: #839921)
* Install upstream bash completion file instead of embedded one.
* Modify META before autoreconf.
* Make dkms distdir before build to avoid including build artifacts.
* Remove ZFS_AC_PACKAGE macros from DKMS sources.
This removes dpkg-dev dependency from zfs-dkms package.
* Use upstream's dkms.mkconf script to produce dkms.conf .
* Ship initramfs zdev hook in zfs-initramfs (Closes: #902052)
[ Nicolas Braud-Santoni ]
* Update debian/copyright, removing unused wildcards.
[ Nicholas D Steeves ]
* Change -dbg package's priority from extra to optional.
[ Mo Zhou ]
* Fix FTBFS on architecture=all due to FileNotFound. (Closes: #911937)
* Add isolation-machine restriction to autopkgtest because the tests
needs to interact with the kernel, i.e. loading kernel module.
-- Mo Zhou <cdluminate@gmail.com> Sun, 28 Oct 2018 10:28:52 +0000
zfs-linux (0.7.11-2) unstable; urgency=medium
* Support Devuan in dkms script. (Closes: #900089)
Thanks to Chris Dos <chris@chrisdos.com>
* Install init scripts to support non-systemd setups. (Closes: #826994)
Thanks to Chris Dos <chris@chrisdos.com>
* Override init.d-script-does-not-source-init-functions for
zfsutils-linux and zfs-zed.
* Patch upstream init scripts to make them work for Debian+OpenRC setup.
* Patch upstream init script to fix missing dependency on local_fs.
-- Mo Zhou <cdluminate@gmail.com> Fri, 26 Oct 2018 09:32:06 +0000
zfs-linux (0.7.11-1) unstable; urgency=medium
[ Aron Xu ]
* Add dpkg-dev to Depends of zfs-dkms (Closes: #900714)
[ Nicolas Braud-Santoni ]
* Use canonical HTTPS format URL for Vcs-Git (Closes: #895873)
[ Mo Zhou ]
* New upstream version 0.7.11 (Closes: #908290)
* Bump linux_compat to 4.18 .
* Replace get_next.sh with one-liner awk script in rules.
* Append myself to Uploaders and refresh auto-generated control.
* Use HTTPS format URI in watch file.
* Recommends linux-libc-dev (<< LINUX_NEXT~) instead of (<< LINUX_NEXT).
-- Mo Zhou <cdluminate@gmail.com> Wed, 19 Sep 2018 08:45:18 +0000
zfs-linux (0.7.9-3) unstable; urgency=medium
[ Antonio Russo ]
* Expand zfs-test and add Breaks/Conflicts (Closes: #899047)
[ Aron Xu ]
* d/control: migrate to alioth-lists (Closes: #899756)
-- Aron Xu <aron@debian.org> Mon, 28 May 2018 18:22:02 +0800
zfs-linux (0.7.9-2) unstable; urgency=medium
[ Aron Xu ]
* Move more zfs test tools to zfs-test package (Closes: #868653)
* New upstream version 0.7.9
* d/rules: add --enable-systemd
* Fix lintian obsolete-relation-form-in-source
* Bump supported linux version to 4.16
[ Antonio Russo ]
* Install enum-extract.pl with dkms
* Handle /proc/kallsym obfuscation (Closes: #891936)
-- Aron Xu <aron@debian.org> Thu, 17 May 2018 23:47:29 +0800
zfs-linux (0.7.6-1) unstable; urgency=medium
[ Lev Lamberov ]
* [INTL:ru] Updated Russian translation of debconf (Closes: #885990)
[ Aron Xu]
* New upstream release (Closes: #889795, #890576)
* 0001-Fix-bug-in-distclean-which-removes-needed-files.patch:
removed, applied upstream
* Update VCS-* URL to salsa.debian.org
* Apply wrap-and-sort
* Recommends: linux-libc-dev (< ${LINUX_NEXT}):
Tries to prevent unexpected upgrades of kernel that is not known to
be supported by the packaged version of ZFS/SPL. (Closes: #849420)
-- Aron Xu <aron@debian.org> Mon, 26 Feb 2018 16:32:29 +0800
zfs-linux (0.7.5-1) unstable; urgency=medium
[ Aron Xu ]
* New upstream version 0.7.5 (Closes: #884812)
[ Antonio Russo ]
* Add version dependency on zfsutils-linux package (Closes: #880889)
-- Aron Xu <aron@debian.org> Fri, 19 Jan 2018 15:39:23 +0800
zfs-linux (0.7.4-1) unstable; urgency=medium
* New upstream version 0.7.4 (Closes: #884287, #883832)
* Require debhelper >= 10.2
* cherry-pick: fix distclean which removes needed files (Closes: #884706)
* Refresh patches
* Update stdver to 4.1.2, no change required
* Install zfs-import.target
-- Aron Xu <aron@debian.org> Mon, 18 Dec 2017 22:48:59 +0800
zfs-linux (0.7.3-3) unstable; urgency=medium
[ Antonio Russo ]
* Add maximum version dependency on spl-dkms (Closes: #883008)
-- Aron Xu <aron@debian.org> Thu, 30 Nov 2017 00:34:30 +0800
zfs-linux (0.7.3-2) unstable; urgency=medium
[ Fabian Grünbichler ]
* d/rules: remove obsolete calls to dpkg-architecture (Closes: #882209)
* zfs-test: add proper Breaks+Replaces (Closes: #880902)
* build: add implicit version to dh_makeshlibs (Closes: #880709)
[ Aron Xu ]
* Depend on matching version of spl-dkms (Closes: ##881013)
-- Aron Xu <aron@debian.org> Tue, 28 Nov 2017 16:16:34 +0800
zfs-linux (0.7.3-1) unstable; urgency=medium
[ Antonio Russo ]
* Refresh manual builds DKMS prevention patch
[ Fabian Grünbichler ]
* zfs-test package
* add files to debian/not-installed
* dh_install: switch to --fail-missing
* add new files from 0.7 to install
* dkms: build icp module as well
[ Antonio Russo ]
* dracut: make module-setup.sh shebang explicit
* add man page reference to systemd units
* Fix install path of zpool.d scripts
* Incorporate DebianPT.org Portuguese translation
* Fix typo in debconf templates
* Drop dependency on dh-systemd
[ Aron Xu ]
* Drop merged patches, update remainders
* Update std-ver to 4.1.1
* New upstream version 0.7.3
* Update debconf pot file
* Update control.in for dh-systemd deprecation
* Add lintian override for zfs-test
[ Colin King ]
* Improve cloning performance for large numbers of clones (LP: #1567557)
Bump zcmd buffer from 16K to 256K.
-- Aron Xu <aron@debian.org> Tue, 31 Oct 2017 18:52:01 +0800
zfs-linux (0.6.5.11-1) unstable; urgency=medium
[ Aron Xu ]
* Imported Upstream version 0.6.5.11
[ Fabian Grünbichler ]
* fix rm path in zfs-share.service
-- Aron Xu <aron@debian.org> Fri, 14 Jul 2017 16:33:23 +0800
zfs-linux (0.6.5.10-1) unstable; urgency=medium
* Add kernel version to depmod cmd (Closes: #860958)
* New upstream version 0.6.5.10
-- Aron Xu <aron@debian.org> Wed, 05 Jul 2017 18:11:39 +0800
zfs-linux (0.6.5.9-5) unstable; urgency=medium
* Add zfs initramfs conf for root pool setup
(Closes: #848157, LP: #1673197)
-- Aron Xu <aron@debian.org> Sun, 19 Mar 2017 18:14:57 +0800
zfs-linux (0.6.5.9-4) unstable; urgency=medium
* autopkgtest: load zfs module before running tests
-- Aron Xu <aron@debian.org> Tue, 14 Mar 2017 11:38:08 +0800
zfs-linux (0.6.5.9-3) unstable; urgency=medium
[ Petter Reinholdtsen ]
* Updated German debconf translation by Helge Kreutzmann. (Closes: #857528)
* Updated metadata on a few patches.
[ Aron Xu ]
* Cherry-pick upstream fix for merged /usr/lib and /lib
* Manually maintain adt test Depends
-- Aron Xu <aron@debian.org> Mon, 13 Mar 2017 12:23:32 +0800
zfs-linux (0.6.5.9-2) unstable; urgency=medium
[ Fabian Grünbichler ]
* fix zed-service-bindir patch
-- Aron Xu <aron@debian.org> Tue, 07 Feb 2017 17:22:02 +0800
zfs-linux (0.6.5.9-1) unstable; urgency=medium
[ Aron Xu ]
* Imported Upstream version 0.6.5.9 (Closes: #851513)
[ Lukas Wunner ]
* Cherry picks for root zpool with dracut (Closes: #849969)
* Fix installation path of systemd files
* Fix build breakage caused by nonstandard umask
[ Fabian Grünbichler ]
* fix python script install path (Closes: #842237)
-- Aron Xu <aron@debian.org> Mon, 06 Feb 2017 15:57:50 +0800
zfs-linux (0.6.5.8-3) unstable; urgency=medium
* Fix the path on the zfs-zed unit file (Closes: #849813)
-- Carlos Alberto Lopez Perez <clopez@igalia.com> Thu, 05 Jan 2017 16:23:16 +0100
zfs-linux (0.6.5.8-2) unstable; urgency=medium
[ Richard Laager ]
* Remove .py extension from utilities in /usr/sbin as per policy
10.4 Scripts (LP: #1628279)
[ Colin Ian King ]
* Use python3 for arcstat.py, arc_summary.py & dbufstat.py (LP: #1627909)
[ Richard Laager ]
* Set PATH in cron.d job to fix monthly scrubs. (LP: #1548009)
[ Aron Xu ]
* Install zed into /usr/sbin
* Rename zfsutils path to follow the package name
* Add missing part in python3 move
* Install zed to /usr/sbin
[ Petter Reinholdtsen ]
* Updated Italian debconf translation by Beatrice Torracca.
(Closes: #846928)
* Added patch 1003-linux-4.9-compat.patch from upstream to build with
Linux kernel 4.9. (Closes: #847018)
-- Aron Xu <aron@debian.org> Sat, 17 Dec 2016 17:42:21 +0800
zfs-linux (0.6.5.8-1) unstable; urgency=medium
[ Carlos Alberto Lopez Perez ]
* Reflow changelog from last upload to avoid lintian warning.
[ Aron Xu ]
* Imported Upstream version 0.6.5.8 (Closes: #838192)
* Conflicts with zutils (Closes: #836853)
[ Zhou Mo ]
* Patch: remove merged patches.
* Upstream renamed zed.service to zfs-zed.service .
* Avoid installing zfs-zed.service twice.
-- Aron Xu <aron@debian.org> Tue, 20 Sep 2016 15:20:21 +0800
zfs-linux (0.6.5.7-2) unstable; urgency=medium
[ Aron Xu ]
* Add busybox to zfs-initramfs list of dependencies. (Closes: #824976)
[ Petter Reinholdtsen ]
* Updated Danish debconf translation by Joe Hansen. (Closes: #830652)
* Added Dutch (nl) debconf translation by Frans Spiesschaert.
(Closes: #832280)
* Norwegian Bokmål (nb) debconf template translation by Petter Reinholdtsen.
[ Eric Desrochers ]
* Change utilities path (bindir) to /usr/sbin. (Closes: #832938)
[ Carlos Alberto Lopez Perez]
* Add tunable to ignore hole_birth, and enable it by default.
(Closes: #830824)
-- Carlos Alberto Lopez Perez <clopez@igalia.com> Tue, 16 Aug 2016 17:43:48 +0200
zfs-linux (0.6.5.7-1) unstable; urgency=medium
[ YunQiang Su ]
* 1002-fix-mips-build.patch: fix builds on mips* archs
[ Aron Xu ]
* New upstream release.
* 1001-Fix-aarch64-compilation.patch: dropped, not needed anymore
* Merge patches from Ubuntu:
- 0002-Check-for-META-and-DCH-consistency-in-autoconf.patch
- 0003-Add-libuutil-to-LIBADD-for-libzfs-and-libzfs_core.patch
- enable-zed.patch
-- Aron Xu <aron@debian.org> Tue, 31 May 2016 14:10:49 +0800
zfs-linux (0.6.5.6-2) unstable; urgency=medium
[ Aron Xu ]
* Adding smoke testing scripts from Ubuntu
* Fix binary module builds
* Add libblkid-dev, libattr1-dev to build-dep
* Re-sync source tree
* Add dh-python to b-d
* Remove .gitignore files and clean build tree
* Scrub all healthy pools monthly from Richard Laager
[ Petter Reinholdtsen ]
* Copied 1000-ppc64el-endian-support.patch from Ubuntu to fix endian
build problem on ppc64el
* Copied 1001-Fix-aarch64-compilation.patch from Ubuntu to fix build
problem on arm64.
* Copied 0001-Prevent-manual-builds-in-the-DKMS-source.patch from
Ubuntu to block manual building in the DKMS source tree.
* Updated Standards-Version from 3.9.7 to 3.9.8.
* Bring some files back to the upstream tarball content to get gbp
buildpackage working.
-- Petter Reinholdtsen <pere@debian.org> Thu, 12 May 2016 12:19:55 +0200
zfs-linux (0.6.5.6-1) unstable; urgency=medium
[ Aron Xu ]
* New upstream version 0.6.5.6.
[ Petter Reinholdtsen ]
* Generated new copyright.cme file based on version 0.6.5.6.
* Updated d/copyright file, add missing BSD licensed init.d scripts, and
new copyright holders in the new upstream version.
* Updated Standards-Version from 3.9.6 to 3.9.7.
* Added myself as uploader.
* Updated debconf po files based on newest pot file.
* Correct URL to git repo in d/control.
-- Petter Reinholdtsen <pere@debian.org> Sat, 26 Mar 2016 07:08:11 +0000
zfs-linux (0.6.5.5-1) unstable; urgency=medium
* Initial Release (Closes: #686447)
-- Aron Xu <aron@debian.org> Sun, 20 Mar 2016 22:57:06 +0800
+1
View File
@@ -0,0 +1 @@
10
+184
View File
@@ -0,0 +1,184 @@
Source: zfs-linux
Section: contrib/kernel
Priority: optional
Maintainer: Proxmox Support Team <support@proxmox.com>
Build-Depends: autotools-dev,
debhelper (>= 10~),
dh-autoreconf,
dh-python,
libattr1-dev,
libblkid-dev,
libselinux1-dev,
libtool,
lsb-release,
python3,
uuid-dev,
zlib1g-dev
Standards-Version: 4.1.2
Homepage: http://www.zfsonlinux.org/
Vcs-Git: https://git.proxmox.com/git/zfsonlinux.git
Vcs-Browser: https://git.proxmox.com/?p=zfsonlinux.git;a=summary
Package: libnvpair1linux
Section: contrib/libs
Architecture: linux-any
Depends: ${misc:Depends}, ${shlibs:Depends}
Breaks: libnvpair1
Replaces: libnvpair1
Description: Solaris name-value library for Linux
This library provides routines for packing and unpacking nv pairs for
transporting data across process boundaries, transporting between
kernel and userland, and possibly saving onto disk files.
Package: libuutil1linux
Section: contrib/libs
Architecture: linux-any
Depends: ${misc:Depends}, ${shlibs:Depends}
Breaks: libuutil1
Replaces: libuutil1
Description: Solaris userland utility library for Linux
This library provides a variety of glue functions for ZFS on Linux:
* libspl: The Solaris Porting Layer userland library, which provides APIs
that make it possible to run Solaris user code in a Linux environment
with relatively minimal modification.
* libavl: The Adelson-Velskii Landis balanced binary tree manipulation
library.
* libefi: The Extensible Firmware Interface library for GUID disk
partitioning.
* libshare: NFS, SMB, and iSCSI service integration for ZFS.
Package: libzfslinux-dev
Section: contrib/libdevel
Architecture: linux-any
Depends: libnvpair1linux (= ${binary:Version}),
libuutil1linux (= ${binary:Version}),
libzfs2linux (= ${binary:Version}),
libzpool2linux (= ${binary:Version}),
${misc:Depends}
Provides: libnvpair-dev, libuutil-dev
Description: OpenZFS filesystem development files for Linux
Header files and static libraries for compiling software against
libraries of OpenZFS filesystem.
.
This package includes the development files of libnvpair1, libuutil1,
libzpool2 and libzfs2.
Package: libzfs2linux
Section: contrib/libs
Architecture: linux-any
Depends: ${misc:Depends}, ${shlibs:Depends}
Breaks: libzfs2
Replaces: libzfs2
Description: OpenZFS filesystem library for Linux
The Z file system is a pooled filesystem designed for maximum data
integrity, supporting data snapshots, multiple copies, and data
checksums.
.
The OpenZFS library provides support for managing OpenZFS filesystems.
Package: libzpool2linux
Section: contrib/libs
Architecture: linux-any
Depends: ${misc:Depends}, ${shlibs:Depends}
Breaks: libzpool2
Replaces: libzpool2
Description: OpenZFS pool library for Linux
The Z file system is a pooled filesystem designed for maximum data
integrity, supporting data snapshots, multiple copies, and data
checksums.
.
This zpool library provides support for managing zpools.
Package: zfs-initramfs
Architecture: all
Depends: busybox-initramfs | busybox-static | busybox,
initramfs-tools,
zfsutils-linux (>= ${binary:Version}),
${misc:Depends}
Breaks: zfsutils-linux (<= 0.7.11-pve1~bpo1)
Replaces: zfsutils-linux (<= 0.7.11-pve1~bpo1)
Description: OpenZFS root filesystem capabilities for Linux - initramfs
The Z file system is a pooled filesystem designed for maximum data
integrity, supporting data snapshots, multiple copies, and data
checksums.
.
This package adds OpenZFS to the system initramfs with a hook
for the initramfs-tools infrastructure.
Package: zfsutils-linux
Section: contrib/admin
Architecture: linux-any
Depends: python3, ${misc:Depends}, ${python3:Depends}, ${shlibs:Depends}
Recommends: lsb-base, zfs-zed
Suggests: nfs-kernel-server,
samba-common-bin (>= 3.0.23),
zfs-initramfs
Conflicts: zfs, zfs-fuse
Provides: zfsutils
Description: command-line tools to manage OpenZFS filesystems
The Z file system is a pooled filesystem designed for maximum data
integrity, supporting data snapshots, multiple copies, and data
checksums.
.
This package provides the zfs and zpool commands to create and administer
OpenZFS filesystems.
Package: zfs-zed
Section: contrib/admin
Architecture: linux-any
Depends: zfsutils-linux (>= ${binary:Version}),
${misc:Depends},
${shlibs:Depends}
Description: OpenZFS Event Daemon
The Z file system is a pooled filesystem designed for maximum data
integrity, supporting data snapshots, multiple copies, and data
checksums.
.
This package provides the OpenZFS Event Daemon (zed).
Package: zfs-test
Section: contrib/admin
Architecture: linux-any
Depends: acl,
bc,
fio,
ksh,
lsscsi,
mdadm,
parted,
python,
sudo,
sysstat,
zfsutils-linux (>=${binary:Version}),
${misc:Depends},
${shlibs:Depends}
Breaks: zfsutils-linux (<= 0.7.9-2)
Replaces: zfsutils-linux (<= 0.7.9-2)
Conflicts: zutils
Description: OpenZFS test infrastructure an support scripts
The Z file system is a pooled filesystem designed for maximum data
integrity, supporting data snapshots, multiple copies, and data
checksums.
.
This package provides the OpenZFS test infrastructure for destructively
testing and validating a system using OpenZFS. It is entirely optional
and should only be installed and used in test environments.
Package: zfs-dbg
Section: contrib/debug
Priority: optional
Architecture: linux-any
Depends: libnvpair1linux (= ${binary:Version}),
libuutil1linux (= ${binary:Version}),
libzfs2linux (= ${binary:Version}),
libzpool2linux (= ${binary:Version}),
zfs-zed (= ${binary:Version}),
zfsutils-linux (= ${binary:Version}),
${misc:Depends}
Description: Debugging symbols for OpenZFS userland libraries and tools
The Z file system is a pooled filesystem designed for maximum data
integrity, supporting data snapshots, multiple copies, and data
checksums.
.
This package contains the debugging symbols for libzpool2linux, libzfs2linux,
libnvpair1linux, libuutil1linux, zfs-zed and zfsutils-linux.
+1579
View File
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+2
View File
@@ -0,0 +1,2 @@
COPYRIGHT
OPENSOLARIS.LICENSE
+1
View File
@@ -0,0 +1 @@
lib/libnvpair.so.*
@@ -0,0 +1 @@
libnvpair1linux: package-name-doesnt-match-sonames
+2
View File
@@ -0,0 +1,2 @@
COPYRIGHT
OPENSOLARIS.LICENSE
+1
View File
@@ -0,0 +1 @@
lib/libuutil.so.*
@@ -0,0 +1 @@
libuutil1linux: package-name-doesnt-match-sonames
+2
View File
@@ -0,0 +1,2 @@
COPYRIGHT
OPENSOLARIS.LICENSE
+2
View File
@@ -0,0 +1,2 @@
lib/libzfs.so.*
lib/libzfs_core.so.*
@@ -0,0 +1 @@
libzfs2linux: package-name-doesnt-match-sonames
+2
View File
@@ -0,0 +1,2 @@
COPYRIGHT
OPENSOLARIS.LICENSE
+4
View File
@@ -0,0 +1,4 @@
lib/*.a usr/lib/
usr/include
usr/lib/*.so
usr/share/pkgconfig/*.pc
+2
View File
@@ -0,0 +1,2 @@
COPYRIGHT
OPENSOLARIS.LICENSE
+1
View File
@@ -0,0 +1 @@
lib/libzpool.so.*
@@ -0,0 +1 @@
libzpool2linux: package-name-doesnt-match-sonames
+11
View File
@@ -0,0 +1,11 @@
usr/share/zfs/enum-extract.pl
usr/share/zfs/zfs-helpers.sh
etc/init.d
etc/sudoers.d
etc/zfs/vdev_id.conf.alias.example
etc/zfs/vdev_id.conf.multipath.example
etc/zfs/vdev_id.conf.sas_direct.example
etc/zfs/vdev_id.conf.sas_switch.example
etc/zfs/vdev_id.conf.scsi.example
usr/lib/dracut
usr/share/zfs/enum-extract.pl
@@ -0,0 +1,69 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Debian ZFS on Linux maintainers
<pkg-zfsonlinux-devel@alioth-lists.debian.net>
Date: Wed, 30 Jan 2019 15:12:04 +0100
Subject: [PATCH] Check-for-META-and-DCH-consistency-in-autoconf
---
config/zfs-meta.m4 | 34 +++++++++++++++++++++++++++++-----
1 file changed, 29 insertions(+), 5 deletions(-)
diff --git a/config/zfs-meta.m4 b/config/zfs-meta.m4
index 3e1429d99..b8e26c492 100644
--- a/config/zfs-meta.m4
+++ b/config/zfs-meta.m4
@@ -1,9 +1,10 @@
dnl #
dnl # DESCRIPTION:
-dnl # Read meta data from the META file. When building from a git repository
-dnl # the ZFS_META_RELEASE field will be overwritten if there is an annotated
-dnl # tag matching the form ZFS_META_NAME-ZFS_META_VERSION-*. This allows
-dnl # for working builds to be uniquely identified using the git commit hash.
+dnl # Read meta data from the META file or the debian/changelog file if it
+dnl # exists. When building from a git repository the ZFS_META_RELEASE field
+dnl # will be overwritten if there is an annotated tag matching the form
+dnl # ZFS_META_NAME-ZFS_META_VERSION-*. This allows for working builds to be
+dnl # uniquely identified using the git commit hash.
dnl #
dnl # The META file format is as follows:
dnl # ^[ ]*KEY:[ \t]+VALUE$
@@ -49,6 +50,7 @@ AC_DEFUN([ZFS_AC_META], [
_zfs_ac_meta_type="none"
if test -f "$META"; then
_zfs_ac_meta_type="META file"
+ _dpkg_parsechangelog=$(dpkg-parsechangelog 2>/dev/null)
ZFS_META_NAME=_ZFS_AC_META_GETVAL([(Name|Project|Package)]);
if test -n "$ZFS_META_NAME"; then
@@ -66,8 +68,30 @@ AC_DEFUN([ZFS_AC_META], [
AC_SUBST([ZFS_META_VERSION])
fi
+ if test -n "${_dpkg_parsechangelog}"; then
+ _dpkg_version=$(echo "${_dpkg_parsechangelog}" \
+ | $AWK '$[]1 == "Version:" { print $[]2; }' \
+ | cut -d- -f1)
+ if test "${_dpkg_version}" != "$ZFS_META_VERSION"; then
+ AC_MSG_ERROR([
+ *** Version $ZFS_META_VERSION in the META file is different than
+ *** version $_dpkg_version in the debian/changelog file. DKMS and DEB
+ *** packaging require that these files have the same version.
+ ])
+ fi
+ fi
+
ZFS_META_RELEASE=_ZFS_AC_META_GETVAL([Release]);
- if test ! -f ".nogitrelease" && git rev-parse --git-dir > /dev/null 2>&1; then
+
+ if test -n "${_dpkg_parsechangelog}"; then
+ _dpkg_release=$(echo "${_dpkg_parsechangelog}" \
+ | $AWK '$[]1 == "Version:" { print $[]2; }' \
+ | cut -d- -f2-)
+ if test -n "${_dpkg_release}"; then
+ ZFS_META_RELEASE=${_dpkg_release}
+ _zfs_ac_meta_type="dpkg-parsechangelog"
+ fi
+ elif test ! -f ".nogitrelease" && git rev-parse --git-dir > /dev/null 2>&1; then
_match="${ZFS_META_NAME}-${ZFS_META_VERSION}"
_alias=$(git describe --match=${_match} 2>/dev/null)
_release=$(echo ${_alias}|cut -f3- -d'-'|sed 's/-/_/g')
@@ -0,0 +1,37 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Debian ZFS on Linux maintainers
<pkg-zfsonlinux-devel@alioth-lists.debian.net>
Date: Wed, 30 Jan 2019 15:12:04 +0100
Subject: [PATCH] Add-libuutil-to-LIBADD-for-libzfs-and-libzfs_core
---
lib/libzfs/Makefile.am | 1 +
lib/libzfs_core/Makefile.am | 3 ++-
2 files changed, 3 insertions(+), 1 deletion(-)
diff --git a/lib/libzfs/Makefile.am b/lib/libzfs/Makefile.am
index f1260ea71..5b07b9d9d 100644
--- a/lib/libzfs/Makefile.am
+++ b/lib/libzfs/Makefile.am
@@ -31,6 +31,7 @@ nodist_libzfs_la_SOURCES = \
libzfs_la_LIBADD = \
$(top_builddir)/lib/libzfs_core/libzfs_core.la \
+ $(top_builddir)/lib/libuutil/libuutil.la \
$(top_builddir)/lib/libshare/libshare.la \
$(top_builddir)/lib/libnvpair/libnvpair.la \
$(top_builddir)/lib/libzpool/libzpool.la
diff --git a/lib/libzfs_core/Makefile.am b/lib/libzfs_core/Makefile.am
index 5eafc25c0..10d6de3d6 100644
--- a/lib/libzfs_core/Makefile.am
+++ b/lib/libzfs_core/Makefile.am
@@ -16,7 +16,8 @@ nodist_libzfs_core_la_SOURCES = \
$(KERNEL_C)
libzfs_core_la_LIBADD = \
- $(top_builddir)/lib/libnvpair/libnvpair.la
+ $(top_builddir)/lib/libnvpair/libnvpair.la \
+ $(top_builddir)/lib/libuutil/libuutil.la
libzfs_core_la_LDFLAGS = -version-info 1:0:0
@@ -0,0 +1,60 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Fabian=20Gr=C3=BCnbichler?= <f.gruenbichler@proxmox.com>
Date: Mon, 4 Sep 2017 10:59:32 +0200
Subject: [PATCH] add man page reference to systemd units
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
---
etc/systemd/system/zfs-import-cache.service.in | 1 +
etc/systemd/system/zfs-import-scan.service.in | 1 +
etc/systemd/system/zfs-mount.service.in | 1 +
etc/systemd/system/zfs-share.service.in | 1 +
4 files changed, 4 insertions(+)
diff --git a/etc/systemd/system/zfs-import-cache.service.in b/etc/systemd/system/zfs-import-cache.service.in
index 97808dee7..cb4358fb4 100644
--- a/etc/systemd/system/zfs-import-cache.service.in
+++ b/etc/systemd/system/zfs-import-cache.service.in
@@ -1,5 +1,6 @@
[Unit]
Description=Import ZFS pools by cache file
+Documentation=man:zpool(8)
DefaultDependencies=no
Requires=systemd-udev-settle.service
After=systemd-udev-settle.service
diff --git a/etc/systemd/system/zfs-import-scan.service.in b/etc/systemd/system/zfs-import-scan.service.in
index c097e3852..e7b1d8862 100644
--- a/etc/systemd/system/zfs-import-scan.service.in
+++ b/etc/systemd/system/zfs-import-scan.service.in
@@ -1,5 +1,6 @@
[Unit]
Description=Import ZFS pools by device scanning
+Documentation=man:zpool(8)
DefaultDependencies=no
Requires=systemd-udev-settle.service
After=systemd-udev-settle.service
diff --git a/etc/systemd/system/zfs-mount.service.in b/etc/systemd/system/zfs-mount.service.in
index 728fc630c..8a73716f5 100644
--- a/etc/systemd/system/zfs-mount.service.in
+++ b/etc/systemd/system/zfs-mount.service.in
@@ -1,5 +1,6 @@
[Unit]
Description=Mount ZFS filesystems
+Documentation=man:zfs(8)
DefaultDependencies=no
After=systemd-udev-settle.service
After=zfs-import.target
diff --git a/etc/systemd/system/zfs-share.service.in b/etc/systemd/system/zfs-share.service.in
index 494f5cbef..d0c93a3e6 100644
--- a/etc/systemd/system/zfs-share.service.in
+++ b/etc/systemd/system/zfs-share.service.in
@@ -1,5 +1,6 @@
[Unit]
Description=ZFS file system shares
+Documentation=man:zfs(8)
After=nfs-server.service nfs-kernel-server.service
After=smb.service
After=zfs-mount.service
@@ -12,19 +12,17 @@ is needed for zfs-mount, zfs-share and zfs-zed services in case ZFS is
not actually used.
Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
---
etc/modules-load.d/zfs.conf.in | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/etc/modules-load.d/zfs.conf.in b/etc/modules-load.d/zfs.conf.in
index 8b41baa30..59b058c9a 100644
index 44e1bb3ed..7509b03cb 100644
--- a/etc/modules-load.d/zfs.conf.in
+++ b/etc/modules-load.d/zfs.conf.in
@@ -1,3 +1,3 @@
# Always load kernel modules at boot. The default behavior is to load the
# kernel modules in the zfs-import-*.service or when blkid(8) detects a pool.
# The default behavior is to allow udev to load the kernel modules on demand.
# Uncomment the following line to unconditionally load them at boot.
-#zfs
+zfs
--
2.14.2
@@ -0,0 +1,38 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Fabian=20Gr=C3=BCnbichler?= <f.gruenbichler@proxmox.com>
Date: Thu, 12 Oct 2017 08:57:48 +0200
Subject: [PATCH] fix install path of zpool.d scripts
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
---
cmd/zpool/Makefile.am | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/cmd/zpool/Makefile.am b/cmd/zpool/Makefile.am
index d07f8d616..5d26f326e 100644
--- a/cmd/zpool/Makefile.am
+++ b/cmd/zpool/Makefile.am
@@ -22,11 +22,11 @@ zpool_LDADD = \
-lm $(LIBBLKID)
zpoolconfdir = $(sysconfdir)/zfs/zpool.d
-zpoolexecdir = $(libexecdir)/zfs/zpool.d
+zpoollibdir = /usr/lib/zfs-linux/zpool.d
EXTRA_DIST = zpool.d/README
-dist_zpoolexec_SCRIPTS = \
+dist_zpoollib_SCRIPTS = \
zpool.d/enc \
zpool.d/encdev \
zpool.d/fault_led \
@@ -119,5 +119,5 @@ install-data-hook:
for f in $(zpoolconfdefaults); do \
test -f "$(DESTDIR)$(zpoolconfdir)/$${f}" -o \
-L "$(DESTDIR)$(zpoolconfdir)/$${f}" || \
- ln -s "$(zpoolexecdir)/$${f}" "$(DESTDIR)$(zpoolconfdir)"; \
+ ln -s "$(zpoollibdir)/$${f}" "$(DESTDIR)$(zpoolconfdir)"; \
done
@@ -0,0 +1,41 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Colin Ian King <colin.king@canonical.com>
Date: Mon, 17 Oct 2016 14:30:56 +0800
Subject: [PATCH] Use python3 for arcstat.py, arc_summary.py & dbufstat.py
---
cmd/arc_summary/arc_summary.py | 2 +-
cmd/arcstat/arcstat.py | 2 +-
cmd/dbufstat/dbufstat.py | 2 +-
3 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/cmd/arc_summary/arc_summary.py b/cmd/arc_summary/arc_summary.py
index f6dbb9bfb..723c2e5a6 100755
--- a/cmd/arc_summary/arc_summary.py
+++ b/cmd/arc_summary/arc_summary.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/python3
#
# $Id: arc_summary.pl,v 388:e27800740aa2 2011-07-08 02:53:29Z jhell $
#
diff --git a/cmd/arcstat/arcstat.py b/cmd/arcstat/arcstat.py
index d7d3e9b73..3a7a47d67 100755
--- a/cmd/arcstat/arcstat.py
+++ b/cmd/arcstat/arcstat.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/python3
#
# Print out ZFS ARC Statistics exported via kstat(1)
# For a definition of fields, or usage, use arctstat.pl -v
diff --git a/cmd/dbufstat/dbufstat.py b/cmd/dbufstat/dbufstat.py
index 42bb0c7c7..73e02ca11 100755
--- a/cmd/dbufstat/dbufstat.py
+++ b/cmd/dbufstat/dbufstat.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/python3
#
# Print out statistics for all cached dmu buffers. This information
# is available through the dbufs kstat and may be post-processed as
@@ -0,0 +1,25 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Fabian=20Gr=C3=BCnbichler?= <f.gruenbichler@proxmox.com>
Date: Mon, 6 Feb 2017 12:04:35 +0100
Subject: [PATCH] Fix the path to the zed binary on the systemd unit.
We install zed into /usr/sbin manually meanwhile the upstream default is
installing it into /sbin. Ubuntu packages also install zed to /usr/sbin, but
they ship their own zfs-zed unit.
---
etc/systemd/system/zfs-zed.service.in | 2 +-
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
index e3dec3dca..0b85f169a 100644
--- a/etc/systemd/system/zfs-zed.service.in
+++ b/etc/systemd/system/zfs-zed.service.in
@@ -5,7 +5,7 @@ After=zfs-import-cache.service
After=zfs-import-scan.service
[Service]
-ExecStart=@sbindir@/zed -F
+ExecStart=/usr/sbin/zed -F
Restart=on-abort
[Install]
@@ -0,0 +1,75 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Colin Ian King <colin.king@canonical.com>
Date: Tue, 31 Oct 2017 19:12:42 +0800
Subject: [PATCH] increase-default-zcmd-allocation-to-256K
Increase default zcmd allocation to 256K (LP: #567557)
When creating hundreds of clones (for example using containers with
LXD) cloning slows down as the number of clones increases over time.
The reason for this is that the fetching of the clone information
using a small zcmd buffer requires two ioctl calls, one to determine
the size and a second to return the data. However, this requires
gathering the data twice, once to determine the size and again to
populate the zcmd buffer to return it to userspace.
These are expensive ioctl() calls, so instead, make the default buffer
size much larger: 256K. This may sound large, but on 64 bit systems
running ZFS this is not a huge chunk of memory for the speed
improvement we gains for large sets of clones:
16K zcmd 256K zcmd
Clones Time Clones Time Clone % improvement
(secs) per sec (secs) per sec
100 7 14.29 5 20.00 28.57
200 10 20.00 9 22.22 10.00
300 19 15.79 18 16.67 5.26
400 22 18.18 22 18.18 0.00
500 29 17.24 29 17.24 0.00
600 39 15.38 39 15.38 0.00
700 46 15.22 45 15.56 2.17
800 58 13.79 51 15.69 12.07
900 74 12.16 61 14.75 17.57
1000 90 11.11 74 13.51 17.78
1100 98 11.22 87 12.64 11.22
1200 102 11.76 95 12.63 6.86
1300 113 11.50 104 12.50 7.96
1400 143 9.79 109 12.84 23.78
1500 145 10.34 132 11.36 8.97
1600 165 9.70 145 11.03 12.12
1700 187 9.09 156 10.90 16.58
1800 210 8.57 166 10.84 20.95
1900 226 8.41 183 10.38 19.03
2000 256 7.81 198 10.10 22.66
2200 311 7.07 238 9.24 23.47
2400 373 6.43 271 8.86 27.35
2600 487 5.34 316 8.23 35.11
3000 619 4.85 426 7.04 31.18
3400 915 3.72 549 6.19 40.00
4000 1332 3.00 923 4.33 30.71
As one can see, with > 2000 clones we get 25-40% speed
improvement.
This patch was originally suggested by Brian Behlendorf
(see https://github.com/zfsonlinux/zfs/issues/6372), however
this fix is a more generic fix to cover all zcmd cases.
Signed-off-by: Colin Ian King <colin.king@canonical.com>
---
lib/libzfs/libzfs_util.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/lib/libzfs/libzfs_util.c b/lib/libzfs/libzfs_util.c
index 9703f844f..0cfcf9c2f 100644
--- a/lib/libzfs/libzfs_util.c
+++ b/lib/libzfs/libzfs_util.c
@@ -1355,7 +1355,7 @@ int
zcmd_alloc_dst_nvlist(libzfs_handle_t *hdl, zfs_cmd_t *zc, size_t len)
{
if (len == 0)
- len = 16 * 1024;
+ len = 256 * 1024;
zc->zc_nvlist_dst_size = len;
zc->zc_nvlist_dst =
(uint64_t)(uintptr_t)zfs_alloc(hdl, zc->zc_nvlist_dst_size);
@@ -7,23 +7,21 @@ Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
---
etc/systemd/system/zfs-import-scan.service.in | 2 +-
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
index 227f5b74f..cc428b0d0 100644
index e7b1d8862..060540f63 100644
--- a/etc/systemd/system/zfs-import-scan.service.in
+++ b/etc/systemd/system/zfs-import-scan.service.in
@@ -12,7 +12,7 @@ ConditionPathExists=!@sysconfdir@/zfs/zpool.cache
[Service]
Type=oneshot
RemainAfterExit=yes
ExecStartPre=/sbin/modprobe zfs
-ExecStart=@sbindir@/zpool import -aN -o cachefile=none
+ExecStart=@sbindir@/zpool import -aN -d /dev/disk/by-id -o cachefile=none
[Install]
WantedBy=zfs-import.target
--
2.14.2
@@ -0,0 +1,61 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Rohan Puri <rohan.puri15@gmail.com>
Date: Sat, 28 Jul 2018 18:32:12 +0530
Subject: [PATCH] Fix deadlock between zfs umount & snapentry_expire
zfs umount -> zfsctl_destroy() takes the zfs_snapshot_lock as a
writer and calls zfsctl_snapshot_unmount_cancel(), which waits
for snapentry_expire() if present (when snap is automounted).
This snapentry_expire() itself then waits for zfs_snapshot_lock
as a reader, resulting in a deadlock.
The fix is to only hold the zfs_snapshot_lock over the tree
lookup and removal. After a successful lookup the lock can
be dropped and zfs_snapentry_t will remain valid until the
reference taken by the lookup is released.
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: Rohan Puri <rohan.puri15@gmail.com>
Closes #7751
Closes #7752
(Cherry-picked from fd7265c646f40e364396af5014bbb83e809e124a)
Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
---
module/zfs/zfs_ctldir.c | 11 +++++------
1 file changed, 5 insertions(+), 6 deletions(-)
diff --git a/module/zfs/zfs_ctldir.c b/module/zfs/zfs_ctldir.c
index bf5a1d059..2964b65a6 100644
--- a/module/zfs/zfs_ctldir.c
+++ b/module/zfs/zfs_ctldir.c
@@ -358,8 +358,6 @@ snapentry_expire(void *data)
static void
zfsctl_snapshot_unmount_cancel(zfs_snapentry_t *se)
{
- ASSERT(RW_LOCK_HELD(&zfs_snapshot_lock));
-
if (taskq_cancel_id(system_delay_taskq, se->se_taskqid) == 0) {
se->se_taskqid = TASKQID_INVALID;
zfsctl_snapshot_rele(se);
@@ -570,13 +568,14 @@ zfsctl_destroy(zfsvfs_t *zfsvfs)
uint64_t objsetid = dmu_objset_id(zfsvfs->z_os);
rw_enter(&zfs_snapshot_lock, RW_WRITER);
- if ((se = zfsctl_snapshot_find_by_objsetid(spa, objsetid))
- != NULL) {
- zfsctl_snapshot_unmount_cancel(se);
+ se = zfsctl_snapshot_find_by_objsetid(spa, objsetid);
+ if (se != NULL)
zfsctl_snapshot_remove(se);
+ rw_exit(&zfs_snapshot_lock);
+ if (se != NULL) {
+ zfsctl_snapshot_unmount_cancel(se);
zfsctl_snapshot_rele(se);
}
- rw_exit(&zfs_snapshot_lock);
} else if (zfsvfs->z_ctldir) {
iput(zfsvfs->z_ctldir);
zfsvfs->z_ctldir = NULL;
@@ -0,0 +1,34 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Richard Laager <rlaager@wiktel.com>
Date: Wed, 30 Jan 2019 15:12:04 +0100
Subject: [PATCH] Enable zed emails
The OpenZFS event daemon monitors pools. This patch enables the email sending
function by default (if zed is installed). This is consistent with the default
behavior of mdadm.
---
cmd/zed/zed.d/zed.rc | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/cmd/zed/zed.d/zed.rc b/cmd/zed/zed.d/zed.rc
index 35a4d1275..c6c106b06 100644
--- a/cmd/zed/zed.d/zed.rc
+++ b/cmd/zed/zed.d/zed.rc
@@ -15,7 +15,7 @@
# 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.
#
-#ZED_NOTIFY_INTERVAL_SECS=3600
+ZED_NOTIFY_INTERVAL_SECS=3600
##
# Notification verbosity.
+11
View File
@@ -0,0 +1,11 @@
0001-Check-for-META-and-DCH-consistency-in-autoconf.patch
0002-Add-libuutil-to-LIBADD-for-libzfs-and-libzfs_core.patch
0003-add-man-page-reference-to-systemd-units.patch
0004-always-load-ZFS-module-on-boot.patch
0005-fix-install-path-of-zpool.d-scripts.patch
0006-Use-python3-for-arcstat.py-arc_summary.py-dbufstat.p.patch
0007-Fix-the-path-to-the-zed-binary-on-the-systemd-unit.patch
0008-increase-default-zcmd-allocation-to-256K.patch
0009-import-with-d-dev-disk-by-id-in-scan-service.patch
0010-Fix-deadlock-between-zfs-umount-snapentry_expire.patch
0011-Enable-zed-emails.patch
+87
View File
@@ -0,0 +1,87 @@
#!/usr/bin/make -f
include /usr/share/dpkg/default.mk
export DEB_BUILD_MAINT_OPTIONS = hardening=+all
%:
dh $@ --with autoreconf,python3,systemd --parallel
override_dh_autoreconf:
@# Embed the downstream version in the module.
@sed -e 's/^Version:.*/Version: $(DEB_VERSION_UPSTREAM)/' -i.orig META
dh_autoreconf
override_dh_auto_configure:
@# Build the userland, but don't build the kernel modules.
dh_auto_configure -- \
--bindir=/usr/bin \
--sbindir=/sbin \
--libdir=/lib \
--with-udevdir=/lib/udev \
--enable-systemd \
--with-systemdunitdir=/lib/systemd/system \
--with-systemdpresetdir=/lib/systemd/system-preset \
--with-config=user
override_dh_auto_test:
# The dh_auto_test rule is disabled because
# `make check` cannot run in an unprivileged build environment.
override_dh_auto_install:
@# Install the utilities.
$(MAKE) install DESTDIR='$(CURDIR)/debian/tmp'
# Use upstream's bash completion
install -D -t '$(CURDIR)/debian/tmp/usr/share/bash-completion/completions/' \
'$(CURDIR)/contrib/bash_completion.d/zfs'
# Move from bin_dir to /usr/sbin
# Remove suffix (.py) as per policy 10.4 - Scripts
# https://www.debian.org/doc/debian-policy/ch-files.html#s-scripts
mkdir -p '$(CURDIR)/debian/tmp/usr/sbin/'
mv '$(CURDIR)/debian/tmp/usr/bin/arc_summary.py' '$(CURDIR)/debian/tmp/usr/sbin/arc_summary'
mv '$(CURDIR)/debian/tmp/usr/bin/arcstat.py' '$(CURDIR)/debian/tmp/usr/sbin/arcstat'
mv '$(CURDIR)/debian/tmp/usr/bin/dbufstat.py' '$(CURDIR)/debian/tmp/usr/sbin/dbufstat'
@# Zed has dependencies outside of the system root.
mv '$(CURDIR)/debian/tmp/sbin/zed' '$(CURDIR)/debian/tmp/usr/sbin/zed'
mkdir -p $(CURDIR)/debian/tmp/usr/lib
for i in `ls $(CURDIR)/debian/tmp/lib/*.so`; do \
ln -s /lib/`readlink $${i}` $(CURDIR)/debian/tmp/usr/lib/`basename $${i}`; \
rm $${i}; \
done
chmod a-x '$(CURDIR)/debian/tmp/etc/zfs/zfs-functions'
chmod a-x '$(CURDIR)/debian/tmp/etc/default/zfs'
chmod a-x '$(CURDIR)/debian/tmp/usr/share/bash-completion/completions/zfs'
override_dh_makeshlibs:
dh_makeshlibs -a -V
ifeq ($(BUILD_UDEB), true)
dh_makeshlibs -V -plibnvpair1linux
dh_makeshlibs -V -plibuutil1linux
dh_makeshlibs -V -plibzfs2linux
dh_makeshlibs -V -plibzpool2linux
dh_makeshlibs -V -pzfsutils-linux
endif
override_dh_strip:
dh_strip --dbg-package=zfs-dbg
override_dh_auto_clean:
find . -name .gitignore -delete
rm -rf zfs-$(DEB_VERSION_UPSTREAM)
dh_auto_clean
@if test -e META.orig; then mv META.orig META; fi
override_dh_install:
find . -name lib*.la -delete
dh_install --fail-missing
# ------------
debian-copyright:
cme update dpkg-copyright -file debian/copyright.cme
+1
View File
@@ -0,0 +1 @@
3.0 (quilt)
@@ -0,0 +1,8 @@
for x in $(cat /proc/cmdline)
do
case $x in
root=ZFS=*)
BOOT=zfs
;;
esac
done
@@ -0,0 +1,67 @@
#!/bin/sh
#
# Add udev rules for ZoL to the initrd.
#
PREREQ="udev"
PREREQ_UDEV_RULES="60-zvol.rules 69-vdev.rules"
COPY_EXEC_LIST="/lib/udev/zvol_id /lib/udev/vdev_id"
# Generic result code.
RC=0
case $1 in
prereqs)
echo "$PREREQ"
exit 0
;;
esac
for ii in $COPY_EXEC_LIST
do
if [ ! -x "$ii" ]
then
echo "Error: $ii is not executable."
RC=2
fi
done
if [ "$RC" -ne 0 ]
then
exit "$RC"
fi
. /usr/share/initramfs-tools/hook-functions
mkdir -p "$DESTDIR/lib/udev/rules.d/"
for ii in $PREREQ_UDEV_RULES
do
if [ -e "/etc/udev/rules.d/$ii" ]
then
cp -p "/etc/udev/rules.d/$ii" "$DESTDIR/lib/udev/rules.d/"
elif [ -e "/lib/udev/rules.d/$ii" ]
then
cp -p "/lib/udev/rules.d/$ii" "$DESTDIR/lib/udev/rules.d/"
else
echo "Error: Missing udev rule: $ii"
echo " This file must be in the /etc/udev/rules.d or /lib/udev/rules.d directory."
exit 1
fi
done
for ii in $COPY_EXEC_LIST
do
copy_exec "$ii"
done
if [ -f '/etc/default/zfs' -a -r '/etc/default/zfs' ]
then
mkdir -p "$DESTDIR/etc/default"
cp -a '/etc/default/zfs' "$DESTDIR/etc/default/"
fi
if [ -d '/etc/zfs' -a -r '/etc/zfs' ]
then
mkdir -p "$DESTDIR/etc"
cp -a '/etc/zfs' "$DESTDIR/etc/"
fi
@@ -0,0 +1,18 @@
## Allow read-only ZoL commands to be called through sudo
## without a password. Remove the first '#' column to enable.
##
## CAUTION: Any syntax error introduced here will break sudo.
##
## Cmnd alias specification
#Cmnd_Alias C_ZFS = \
# /sbin/zfs "", /sbin/zfs help *, \
# /sbin/zfs get, /sbin/zfs get *, \
# /sbin/zfs list, /sbin/zfs list *, \
# /sbin/zpool "", /sbin/zpool help *, \
# /sbin/zpool iostat, /sbin/zpool iostat *, \
# /sbin/zpool list, /sbin/zpool list *, \
# /sbin/zpool status, /sbin/zpool status *, \
# /sbin/zpool upgrade, /sbin/zpool upgrade -v
#
## allow any user to use basic read-only ZFS commands
#ALL ALL = (root) NOPASSWD: C_ZFS
@@ -0,0 +1,14 @@
#!/bin/sh
# Sub-test to exclude ZVOLs
set -e
partition="$1"
. /usr/share/os-prober/common.sh
if [ "$(stat -L -c %t "$partition")" = "e6" ] ; then
debug "$1 is a ZVOL; skipping"
exit 0
fi
# No ZVOLs found
exit 1

Some files were not shown because too many files have changed in this diff Show More