270 Commits

Author SHA1 Message Date
Thomas Lamprecht f5c9e3a9a8 bump version to 2.2.4-pve1
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2024-06-04 11:12:08 +02:00
Stoiko Ivanov 4847272363 update arc_summary arcstat patch with new introduced values
ZFS 2.2.4 added new kstats for speculative prefetch in:
026fe796465e3da7b27d06ef5338634ee6dd30d8

Adapt our patch introduced with ZFS 2.1 (for the then added MFU/MRU
stats), to also deal with the now introduced values not being present
(because an old kernel-module does not offer them).

Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
Reviewed-by: Max Carrara <m.carrara@proxmox.com>
Tested-by: Max Carrara <m.carrara@proxmox.com>
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2024-05-21 16:03:10 +02:00
Stoiko Ivanov 76119aa32b update zfs submodule to 2.2.4 and refresh patches
mostly - drop all patches we had queued up to get kernel 6.8
supported.

Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
Tested-by: Max Carrara <m.carrara@proxmox.com>
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2024-05-21 16:03:00 +02:00
Thomas Lamprecht 3968b96ed4 bump version to 2.2.3-pve2
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2024-04-08 17:44:01 +02:00
Fabian Grünbichler 32ce077088 fix #4835: order zfs-import@ before -cache/-scan
this should fix failures of the template instances because either of
the two other import services picked up the pool in question first.

Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
Reviewed-by: Stoiko Ivanov <s.ivanov@proxmox.com>
Tested-by: Stoiko Ivanov <s.ivanov@proxmox.com>
2024-04-08 17:38:01 +02:00
Thomas Lamprecht 68be554e71 backport 2.2.4 staging for better 6.8 support
Use the current ZFS 2.2.4 staging tree [0] with commit deb7a8423 ("Fix
corruption caused by mmap flushing problems") on top.

Additionally, include an open, but ack'd, pull request [1] that avoids
a potential general protection fault due to touching a vbio after it
was handed off to the kernel.

[0]: https://github.com/openzfs/zfs/commits/zfs-2.2.4-staging/
[1]: https://github.com/openzfs/zfs/pull/16049

Both should mostly touch the module code.

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2024-04-03 09:56:31 +02:00
Thomas Lamprecht 6c9ff9b992 bump version to 2.2.3-pve1
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2024-03-11 13:46:05 +01:00
Stoiko Ivanov b48cfd2b15 fix #5288: cherry-pick fix for udev-partition links > 16
If a zvol has more than 15 partitions, the minor device number
exhausts the slot count reserved for partitions next to the zvol
itself. As a result, the minor number cannot be used to determine the
partition number for the higher partition, and doing so results in
wrong named symlinks being generated by udev.

Since the partition number is encoded in the block device name anyway,
let's just extract it from there instead.

For upstream issue and PR discussion see:
https://github.com/openzfs/zfs/pull/15970
https://github.com/openzfs/zfs/issues/15904

Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2024-03-11 13:44:37 +01:00
Stoiko Ivanov a5e0251015 update zfs submodule to 2.2.3 and refresh patches
mostly support for newer kernel-versions, and fixes for the BRT bugs
discovered with 2.2.0 (BRT remains disabled by default).

The update contains a fix for CVE-2020-24370 in lua (which is present
in ZFS for channel-programs, which we do not use) - see:
https://github.com/openzfs/zfs/pull/15847 for more details.

One patch from Stefan Lendl was backported and is now in the ZFS 2.2
branch.

Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
2024-03-11 13:41:25 +01:00
Thomas Lamprecht 838cd1d173 bump version to 2.2.2-pve2
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2024-02-19 17:00:17 +01:00
Stefan Lendl 5f4f0445f4 Fix #5101: exports with sharenfs remain after zfs mount -a
When running `zfs mount -a`, prevent the exported datasets (with sharenfs)
to be truncated (unexported).
Adds tests to verify shares persist after mount -a

Signed-off-by: Stefan Lendl <s.lendl@proxmox.com>
2024-02-02 19:17:28 +01:00
Thomas Lamprecht 81d11761c3 bump version to 2.2.2-pve1
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-12-04 16:50:30 +01:00
Stoiko Ivanov 3bda92bd20 d/zfsutils-linux.install: add zfs_prepare_disk and manpage
Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
2023-12-04 16:48:29 +01:00
Stoiko Ivanov f67eb9538f update zfs submodule to 2.2.2 and refresh patches
the removed patches were cherry-picks, which are included in 2.2.2

Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
2023-12-04 16:48:29 +01:00
Fabian Grünbichler 00036e5a6e bump version to 2.2.0-pve4
Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
2023-11-29 09:22:05 +01:00
Fabian Grünbichler 3db00caad9 cherry-pick fix for data corruption
cherry-picked from 2.2.0-staging, fixing
https://github.com/openzfs/zfs/issues/15526

Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
2023-11-29 09:18:39 +01:00
Thomas Lamprecht e295f30e6a bump version to 2.2.0-pve3
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-11-17 17:33:02 +01:00
Stoiko Ivanov 96c807af63 pick bug-fixes staged for 2.2.1
ZFS 2.2.1 is currently being prepared, but the 3 patches added here
seem quite relevant, as the might cause dataloss/panics on setups
which run `zpool upgrade`.
See upstreams discussion for 2.2.1:
https://github.com/openzfs/zfs/pull/15498/
and the most critical issue:
https://github.com/openzfs/zfs/pull/15529
finally:
https://github.com/openzfs/zfs/commit/459c99ff2339a4a514abcf2255f9b3e5324ef09e
should not hurt either

the change to the UBSAN patch (0013) is unrelate, cosmetic only and
happened by running export-patchqueue.

Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
2023-11-17 17:30:26 +01:00
Thomas Lamprecht 88fd6e053b bump version to 2.2.0-pve2
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-11-12 16:04:12 +01:00
Thomas Lamprecht 4f818e9880 ensure vdev_stat struct layout compat betweem 2.1 and 2.2
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-11-12 15:59:55 +01:00
Thomas Lamprecht 310afb0d19 backport work-around for UBSAN-errors with variable arrays
Link: https://github.com/openzfs/zfs/pull/15510
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-11-12 15:59:16 +01:00
Stoiko Ivanov 0f9a07b53e add patch for spurious warning on zfs mount -a
reported in our community forum:
https://forum.proxmox.com/threads/135635/#post-60036

the small fix was merged upstream:
https://github.com/openzfs/zfs/pull/15468

minimally tested by building with this patch and running
`zfs mount -a` on an affected system.

Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
2023-11-02 20:12:02 +01:00
Thomas Lamprecht aa99285dda bump version to 2.2.0-pve1
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-10-27 18:25:54 +02:00
Stoiko Ivanov 7e3b7d81a1 fix #5014 reenable blk-mq optimization
While I think the huge performance optimization was at some point not
really that huge in practice - the feature sounds like it would
benefit our use-case:
https://github.com/openzfs/zfs/pull/13148

currently the feature is disabled in 2.2.0 (see the second patch),
because of the issues addressed by the first patch

Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-10-27 18:24:32 +02:00
Stoiko Ivanov 28de0abfa9 d/control: fix depends provided by dpkg-gencontrol
Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-10-27 18:24:32 +02:00
Stoiko Ivanov a20ffcd44f d/rules: drop bash_completion mangling
This was integrated into upstreams autoconf in commit:
e69ade32e116e72d03068c03799924c3f1a15c95
(contrib: bash_completion.d: make install destination vendor
dependent)

Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-10-27 18:24:32 +02:00
Thomas Lamprecht 1382616c40 d/lintian: adapt zfs-test overrides to debhelper 13 format
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-10-27 18:24:32 +02:00
Thomas Lamprecht 1621cb1079 d/copyright: adapt to file moves and deletions
Lots of targeted commands consisting of a single file as source got
moved a level up from their command-specific sub-directory to cmd/
directory directly.

A handful of build-artefacts like configure/m4 files generated by
auto-tools, was removed from being tracked by git.

Then some stuff was simple unused or broken and got deleted
(vdev_cache, zfs_spa).

Others where replaced (sha256 by general sha2 library, zstreamdump by
zstream).

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-10-27 18:24:32 +02:00
Thomas Lamprecht 508220ed2c zfsutils-linux: install new trim units, zilstat tool, and new man pages
Cater to dh_missing complaints and ship new:
- zilstat tool
- zfs-lock and zfs-unlock manual pages in section 8
- vdevprops manual page in section 7
- systemd template unit files for trimming a specific pool, inclusive
  timers to do so on a weekly and/or monthly basis. Keep those covered
  by our default "no-stop-on-upgrade" rule for the dh_systemd helper.

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-10-27 18:24:32 +02:00
Thomas Lamprecht 6da885c3b1 d/patches: add context to ZED no-symlink patch
Just copy over the existing commit message...

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-10-27 18:24:32 +02:00
Thomas Lamprecht 2840fef531 d/install: remove manpages for BSD-specific jail/unjail hooks
With ZFS 2.2. they're actually only installed if ZFS is being build
for FreeBSD, so not remvoing them here leads to a missing file error.

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-10-27 18:24:32 +02:00
Thomas Lamprecht 1f8dab1515 d/rules: add missing quotes to glob passed to find
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-10-27 18:24:32 +02:00
Thomas Lamprecht 2c95b92384 update submodule and patches for 2.2.0
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-10-27 18:24:32 +02:00
Thomas Lamprecht 9e8946d4b9 backport fix for AMX register breakage
vmexit's can cause the AMX registers to "misbehave" which can break
ZFS, even though ZFS doesn't use AMX at all.

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

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
Tested-by: Aaron Lauterer <a.lauterer@proxmox.com>
2023-10-11 16:05:26 +02:00
Thomas Lamprecht 8c6520d1fc buildsys: improve clean target
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-10-10 15:44:59 +02:00
Thomas Lamprecht aa26132525 bump version to 2.1.13-pve1
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-09-28 15:40:17 +02:00
Thomas Lamprecht 13c7e925aa add basic gitignore
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-09-28 15:40:17 +02:00
Thomas Lamprecht a80c5e3597 buildsys: improve DSC target
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-09-28 15:40:17 +02:00
Thomas Lamprecht 149fd91bb2 buildsys: align variable names with our commonly used ones
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-09-28 15:40:17 +02:00
Stoiko Ivanov 362d3432be update zfs submodule to 2.1.13 and refresh patches
Sugested-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-09-28 15:40:17 +02:00
Thomas Lamprecht f5ed5be89a bump version to 2.1.12-pve1
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-06-13 15:25:21 +02:00
Stoiko Ivanov 5891aaec34 /lib/zfs-linux/trim: don't exit 1 if last pool isn't nvme-only (Closes: #1030316)
(cherry picked from debian-upstream[0]
commit 8ed69adac193f6463832f6ae34b5ded88b8014d8)

[0] https://salsa.debian.org/zfsonlinux-team/zfs
Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
2023-06-13 15:23:49 +02:00
Stoiko Ivanov 63e591d8a9 update zfs submodule to 2.1.12
patches still applied cleanly

Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
2023-06-13 15:23:49 +02:00
Thomas Lamprecht d855afe7be bump version to 2.1.11-pve2
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-05-20 20:37:21 +02:00
Thomas Lamprecht 34d701d1ac buildsys: add sbuild convenience target
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-05-20 20:37:21 +02:00
Thomas Lamprecht 40fe66e33e buildsys: derive upload dist and arch automatically
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-05-20 20:37:21 +02:00
Thomas Lamprecht 1b7710c13c d/copyright: update from debian upstream
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-05-20 20:37:21 +02:00
Thomas Lamprecht 2f5fca8a1a d/control: do not depend on obsolete lsb-base
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-05-20 20:37:21 +02:00
Thomas Lamprecht 8ba2c83746 d/rules: drop --parallel flag, useless for dh-compat >= 10
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-05-20 20:37:21 +02:00
Thomas Lamprecht dff6b68bf5 drop transitionall zfs-dbg package
this effectively reverts the commit
755c716 ("d/control: add transitional zfs-dbg package")

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-05-20 20:37:16 +02:00
Thomas Lamprecht 88588cfead buildsys: generate clean orig source tarball for DSC
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-05-20 20:37:16 +02:00
Thomas Lamprecht 1995e62236 makefile: convert to use simple parenthesis
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-05-20 20:27:07 +02:00
Thomas Lamprecht ab835eff0f buildsys: use actual DSC file as prerequisite
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-05-20 20:27:07 +02:00
Thomas Lamprecht b0c4d8ac0b bump version to 2.1.11-pve1
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-04-20 09:30:56 +02:00
Thomas Lamprecht f4e2c4ae29 update ZFS submodule to 2.1.11 and refresh patches
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-04-20 09:30:22 +02:00
Thomas Lamprecht 4584ec1155 cherry-pick e063ff177 ("linux 6.3 compat: add another bdev_io_acct case")
As among possibly other things, it addresses a patch that got
backported to kernel 6.2.8 too.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
2022-06-28 16:12:01 +02:00
Stoiko Ivanov b530052969 update submodule and patches to ZFS
Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
2022-06-28 16:12:01 +02:00
Thomas Lamprecht 75a1232bf6 bump version to 2.1.4-pve1
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2022-03-29 10:30:57 +02:00
Thomas Lamprecht fad6240a58 update zfs submodule to 2.1.4
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2022-03-24 09:28:15 +01:00
Thomas Lamprecht 9a75bb8d65 bump version to 2.1.3-pve1
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2022-03-11 16:36:30 +01:00
Stoiko Ivanov d801a0c5f6 add zfs-scrub timers+services to zfsutils-linux
Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
2022-03-11 16:34:58 +01:00
Stoiko Ivanov ca1ed9a9bf update submodule and patches to ZFS 2.1.3
Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
2022-03-11 16:34:58 +01:00
Stoiko Ivanov 531eac3304 cherry-pick lock-inversion patch for zvol_open
the changes to zvol_open added to 2.1.2 (for coping with kernel
changes in 5.13) seem to have introduced a lock order inversion [0].

(noticed while reviewing the 2.0.6->2.0.7 changes (the patch was
applied after 2.1.2 was already tagged)

[0] https://github.com/openzfs/zfs/pull/12863
Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
2022-01-11 16:41:50 +01:00
Thomas Lamprecht 64e59c5ce9 bump version to 2.1.2-pve1
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2022-01-11 11:31:36 +01:00
Aron Xu 8fef14d56e d/rules: allow abigail to fail
(cherry picked from debian upstream [0]
commit 5ae98b5499022c2c127d546a7b5aeb906f6f2a6b)

[0] https://salsa.debian.org/zfsonlinux-team/zfs

Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
2022-01-11 11:30:14 +01:00
Stoiko Ivanov 7ea557926a update submodule and patches to ZFS 2.1.2
Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
2022-01-11 11:30:14 +01:00
Stoiko Ivanov 56ef1ea072 arcstat/arc_summary: workaround for stats only present with cache device
This commit updates Thomas' patch to deal with a 2.0 kernel module
with 2.1 arc_summary/arcstat

Tested by adding a cache-device to a zpool and running both commands
to verify no KeyError exception is thrown.

Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
2021-11-11 18:21:16 +01:00
Thomas Lamprecht 79a02bb27f bump version to 2.1.1-pve3
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2021-11-10 09:59:30 +01:00
Thomas Lamprecht eb93ae9166 update arc stat/summary missing l2arc MFU/MRU stats patches
...

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2021-11-10 09:59:30 +01:00
Thomas Lamprecht b4d26406ac bump version to 2.1.1-pve2+1
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2021-11-10 09:42:14 +01:00
Thomas Lamprecht c79374e7fb arc stat/summary: better fallback for missing l2arc MFU/MRU stats
avoids issues on specific CLI options and is just more thorough.

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2021-11-10 09:41:00 +01:00
Thomas Lamprecht 97dc14914d bump version to 2.1.1-pve2
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2021-11-10 08:11:40 +01:00
Thomas Lamprecht ef1149ab21 arc stat/summary: guard access to l2arc MFU/MRU stats
for better backward compat of 2.1 userspace tooling with 2.0 kernel
    module

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2021-11-10 08:09:37 +01:00
Thomas Lamprecht b577f030c4 buildsys: fix DEBS variable name
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2021-09-28 06:58:46 +02:00
Thomas Lamprecht 0ee31a51f6 bump version to 2.1.1-pve1
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2021-09-28 06:16:19 +02:00
Stoiko Ivanov a8c499606b bump libzpool soname
following commit ec311430e2fd66492498a1559f56ef25e1192266 ZFS
upstream due to

> Added functions (2):
> - boolean_t zpool_is_draid_spare(const char *);
> - zpool_compat_status_t zpool_load_compat(const char *,
>      boolean_t *, char *, char *);

However since libzfs increased both the current as well as the age,
as there where only addition but no changes of previously existing
ABI, the soname of the library remained at libzfs4.so - following
https://www.debian.org/doc/debian-policy/ch-sharedlibs.html I left
the package name at libzfs4linux

Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
 [ Thomas: added a bit more context ]
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2021-09-28 06:15:50 +02:00
Stoiko Ivanov a330c5a73c buildsys: adapt install paths for zfs 2.1.1
Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
2021-09-28 06:10:53 +02:00
Stoiko Ivanov d4c62c11a3 update submodule and patches to ZFS 2.1.1-staging
Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
2021-09-28 06:10:53 +02:00
Thomas Lamprecht e697cc5992 buildsys: add pbs to upload target
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2021-07-21 11:12:09 +02:00
Fabian Grünbichler 755c71660a d/control: add transitional zfs-dbg package
suggesting the new -dbgsym packages without having a strict dependency
on a specific version of the library packages, like the old no longer
built zfs-dbg package had.

this commit can be reverted after the package has been uploaded once, or
kept for one release cycle if we might do the -dbgsym migration in
oldstable as well to avoid the oldstable zfs-dbg package version
overtaking the transitional one here.

Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
2021-07-21 11:11:24 +02:00
Fabian Grünbichler 4f457a8285 build: switch upload target to bullseye
Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
2021-07-21 11:11:24 +02:00
Thomas Lamprecht 7764433c70 bump version to 2.0.5-pve1
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2021-07-09 18:24:34 +02:00
Stoiko Ivanov be2dd8e629 update submodule and patches to ZFS 2.0.5
fixes #2546

Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
2021-07-09 18:15:54 +02:00
Stoiko Ivanov 5881d024a7 do not restart most services upon upgrade
zfs-zed is the only classical daemon, which benefits from a restart,
so restart only zfs-zed.

Noticed during the transition from ZFS 0.8.x to 2.0.0 zvol_wait, which
is called by zfs-volume-wait.service was changed to also output the
redacted_snap property of the datasets. This property does not exist
if the kernelmodule is still 0.8.x, causing an error to be printed to
the journal.

Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
2021-07-09 18:15:54 +02:00
Stoiko Ivanov fb2819a99e drop unused lintian overrides
Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
2021-06-18 15:25:41 +02:00
Stoiko Ivanov a06fb96702 update lintian-overrides
mostly taken from debian-upstream

Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
2021-06-18 15:25:41 +02:00
Stoiko Ivanov f17f9da9f3 sync scrub and trim cronjobs with debian upstream
* Pull in the changes to the automatic scrub cronjob from
  debian-upstream [0] commit
  f6d45405df0a2ed2748975667e8ea50714034d13
* Add a script and cronjob for regular trimming of pools
* Change the logic to scrub/trim pools based on a per pool('s root
  dataset property)

pulled the changes in as one commit instead of cherry-picking, since
the planned and reverted debconf questions would have caused
unneccessary churn.

commits identified by running:
`git log --full-diff -- debian/tree/zfsutils-linux/usr/lib/zfs-linux`
in a worktree from [0].

[0] https://salsa.debian.org/zfsonlinux-team/zfs/
Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
2021-06-18 15:25:41 +02:00
Stoiko Ivanov cb19e379cd Remove /etc/zfs/zed.d on purge
(cherry picked from debian-upstream [0] commits
d0ba1164dcf8e566a5134d8fadef4c84d5afdf6c and
3ddeaa236e758e3dee7a9eedac66a001a11953c3)

[0] https://salsa.debian.org/zfsonlinux-team/zfs/
Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
2021-06-18 15:25:41 +02:00
Stoiko Ivanov 85fab4fe16 Adjust zed.d symlink-preservation
Closes BTS#983401.

 - Overwrite dangling symlinks on install
 - Does not clobber symlinks on removal

Signed-off-by: Antonio Russo <aerusso@aerusso.net>
(cherry picked from commit b024d59f5976ea75ac9a0b48612b7032d24513ee)
Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
2021-06-18 15:25:41 +02:00
Stoiko Ivanov 53b89f82e3 Bump Standards-Version to 4.5.1 (no changes)
(adapted from debian-upstream [0] commit
b8999dc6ed1c821d5ca0e6474d7d57718b700dbf)

[0] https://salsa.debian.org/zfsonlinux-team/zfs/

Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
2021-06-18 15:25:41 +02:00
Stoiko Ivanov c12e9c738d compat 12 automatically adds initramfs trigger
Signed-off-by: Antonio Russo <aerusso@aerusso.net>
(cherry picked from commit 1564c05d0dfa30bef120f86529a3f026538e4c4e)
Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
2021-06-18 15:25:41 +02:00
Stoiko Ivanov 8af2630849 Bump debhelper compat level to 12.
Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
2021-06-18 15:25:41 +02:00
Stoiko Ivanov 1cd71b3b73 buildsys: switch to automatic debug packages
automatically generated -dbgsym packages has become the default
(see dh_strip(1) and [0]).
While we have no direct need to migrate, it helps in avoiding
debhelper bug 939164 (see [1]), when migrating to debhelper-compat 12.
(alternative option would be to depend on debhelper from backports, or
to skip dh_dwz).

The change is well described in dh_strip(1).

[0] https://wiki.debian.org/AutomaticDebugPackages
[1] https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=939164
Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
2021-06-18 15:25:41 +02:00
Stoiko Ivanov 33bcc36963 Elaborate the functionality of ZED in long description. (Closes: #979414)
cherry picked from debian upstream [0]

(cherry picked from commit d37e013ff5f7b811b235c62ea5c2c10828aceb7b)
Originally-by: Mo Zhou <cdluminate@gmail.com>
Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>

[0] https://salsa.debian.org/zfsonlinux-team/zfs/

Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
2021-06-18 15:25:41 +02:00
Stoiko Ivanov d75312dc84 Reflect libssl requirement of libzfs
cherry picked from debian-upstream [0]

(cherry picked from commit dbe70331081033bbedfa52d641f82e784972f6cf)
Originally-by: Antonio Russo <aerusso@aerusso.net>
Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>

[0] https://salsa.debian.org/zfsonlinux-team/zfs/

Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
2021-06-18 15:25:41 +02:00
Stoiko Ivanov 51204ca4f7 buildsys: add all packages to make variable and sort
Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
2021-06-18 15:25:41 +02:00
Stoiko Ivanov 4b661efd65 buildsys: unify '{' and '(' in Makefile
Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
2021-06-18 15:25:41 +02:00
Thomas Lamprecht 28dd83391b bump version to 2.0.4-pve1
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2021-03-18 13:31:24 +01:00
Stoiko Ivanov 7a7de98bf2 update submodule and patches to zfs-2.0.4
Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
2021-03-18 13:30:47 +01:00
Thomas Lamprecht 548b12af1d backport "zpool: use tab to intend continuation from removal status"
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2021-03-07 15:54:23 +01:00
Thomas Lamprecht 363c009381 bump version to 2.0.3-pve2
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2021-02-25 13:06:16 +01:00
Stoiko Ivanov 6967bf4185 buildsys: validate ABI at build time
this commit follows: 93661343d884a5339631afd7b683e232d20b7baf and
0b52b09c6083bd590e46cb9884d06bae1b712a2a from debian-upstream [0].

the `make checkabi` invocation takes < .4s on my workstation - so it
seems worth the change.

[0] https://salsa.debian.org/zfsonlinux-team/zfs

Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
2021-02-25 12:11:15 +01:00
Stoiko Ivanov c8ca652406 d/rules: drop unneeded UDEB conditionals
we don't build or ship udebs

Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
2021-02-25 12:11:15 +01:00
Stoiko Ivanov 29e1ddcc26 d/rules: cosmetic cleanups minimize diff with d.o.
Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
2021-02-25 12:11:15 +01:00
Stoiko Ivanov 00fad03966 d/control: match package names to debian-upstream
during the tracking of zfs-2.0.x integration in debian upstream I did
not notice that the library packages got renamed yet another time (see
[0]) to match the soname version.
This patch renames our library packagenames to match debian upstream
and includes Breaks,Depends on the intermediate versions we shipped
with the zfs-2.0.3 release.

Noticed while checking an issue (with `aptitude` vs. `apt`) reported
on pve-user.
Tested on a VM running our latest packages and on one still running
zfs 0.8.5

[0] https://salsa.debian.org/zfsonlinux-team/zfs/-/commit/42ba750f8ca07625e9d58c14b46420768ab23c09

Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
2021-02-25 12:11:15 +01:00
Thomas Lamprecht 59b6645a48 bump version to 2.0.2-pve2
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2021-02-15 15:46:37 +01:00
Stoiko Ivanov 8228117e8b update submodule and patches to zfs-2.0.3
Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2021-02-15 15:46:02 +01:00
Stoiko Ivanov 387483f555 cherry-pick file-mode fix from 2.0.3-staging
the patch fixes a potential panic on systems running ZFS > 2.0.0 and
is already queued for inclusion in 2.0.3 - see [0] for a related
github issue.

[0] https://github.com/openzfs/zfs/issues/11474

Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
2021-02-11 18:20:30 +01:00
Stoiko Ivanov 224ca2e1b4 update debian/copyright
by taking the current version from debian-upstream.

The only addition is an attribution for Proxmox for the files in
debian/*

Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
2021-02-11 18:20:30 +01:00
Stoiko Ivanov 1f122c546d buildsys: make libpam-zfs a separate package
ZFS includes (since 2.0.0) a pam-module, which takes the login
credentials of an user to unlock their home-dataset.

Enabling it in its current state can cause some side-effects like
prompting for a password when running `su` as root (see [0]).

Our update to ZFS 2.0.0 shipped the pam config in zfsutils-linux,
whereas debian-upstream split it out into its own optional package

This commit adopts this change.
based on debian-upstream [1] commit
cad2f3d24aa44cfdce1e2eae8b6ba027efaba2d6

The issue becomes apparent by installing the current zfsutils-linux
package and running `pam-auth-update --package` (e.g. by installing
an upgraded libpam-runtime package).

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

Reported-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
Originally-by: Antonio Russo <aerusso@aerusso.net>
Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
2021-02-11 18:20:30 +01:00
Thomas Lamprecht b34f3bcce2 bump version to 2.0.2-pve1
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2021-02-06 10:23:07 +01:00
Stoiko Ivanov 4b8605c4d7 move manpage arcstat(1) to arcstat(8).
Adapted from debian upstream [0] commits:
1a3239e6b3b5604bb588c10912f57f32962b38c3
66b7241c965cdce730e76ca59c242fccc267b302

[0] https://salsa.debian.org/zfsonlinux-team/zfs/
Originally-By: Mo Zhou <cdluminate@gmail.com>
Originally-By: Antonio Russo <aerusso@aerusso.net>
Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2021-02-06 09:39:41 +01:00
Stoiko Ivanov 9af86c74fe zgenhostid is installed in /sbin
Adapted from debian upstream [0] commits:
76f1cec519ce3bd126dbb3b9d63e3a76c1b7c89e

[0] https://salsa.debian.org/zfsonlinux-team/zfs/

Originally-By: Antonio Russo <aerusso@aerusso.net>
Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2021-02-06 09:39:41 +01:00
Stoiko Ivanov 6afcaafa51 update submodule to zfs-2.0.2
Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2021-02-06 09:39:38 +01:00
Thomas Lamprecht 5548e2b0b1 d/rules: fix resolving sphinx-build on bullseye
It's included as link in /usr/bin there, so the grep matched it
twice, the actual file plus the link, resulting in a build failure.

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2021-01-15 15:08:23 +01:00
Thomas Lamprecht 8f4d852dcd bump version to 2.0.1-pve1
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2021-01-13 14:16:06 +01:00
Thomas Lamprecht 01e04e2989 update submodule to zfs-2.0.1
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2021-01-13 14:14:54 +01:00
Stoiko Ivanov fd0cc4becd package zfsbootenv library
adapted from debian-upstream 0be5e4edc2eef9885fd03e9c797b9429da539ce2

Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
2021-01-13 14:14:01 +01:00
Antonio Russo cb47b57463 Include new pam_zfs_key mechanism
(cherry picked from commit 340f9394c38a78b2530a64746c1518163d7f6970)
Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
2021-01-13 14:14:01 +01:00
Antonio Russo 69b48b05c5 Include new zfs_ids_to_path tool
(cherry picked from commit 3376e22c139b6dcd5774018fc7ebcdff9fac66c3)
Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
2021-01-13 14:14:01 +01:00
Antonio Russo 3419ff852f Add new zstream utility
(cherry picked from commit 7f3dec474aff811b72220858fb5935054fd58a3c)
Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
2021-01-13 14:14:01 +01:00
Stoiko Ivanov 1d07acad8a Manual pages were split into subpages
adapted from debian-upstream a149a374057d55ec82d8d9d258105aeb316bb1fb

Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
2021-01-13 14:14:01 +01:00
Antonio Russo 984ac2c31e ship arcstat(1) manual page
(cherry picked from commit c5b72db53215c2ca7b76c21113f466938517d71b)

Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
2021-01-13 14:14:01 +01:00
Stoiko Ivanov 292758bd89 Bump libz{fs, pool, uutil} soname version
adapted from debian-upstream 490ecc37abc7f6759293b90334768d088f2ff98c

Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
2021-01-13 14:14:01 +01:00
Stoiko Ivanov 457cad5f88 Install files under multiarch directories
adapted from debian-upstream 8f137b115a89348e7816f60b5e8410fd303fec81

Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
2021-01-13 14:14:01 +01:00
Stoiko Ivanov 374aad5bea update submodule and patches for zfs-2.0.0
Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
2021-01-13 14:14:01 +01:00
Thomas Lamprecht 4a743804aa bump version to 0.8.5-pve1
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2020-10-08 10:45:43 +02:00
Stoiko Ivanov d754cc6a74 update submodule and patches for to zfs-0.8.5
upstream commit 2d2ce04b9931927ffd045f9ebba3d39d4d31f7db changed the location
for installing pkgconfig files to the architecture specific one in /lib
instead of /usr/share - this patch reflects the change in
'debian/libzfslinux-dev.install'.

It follows the change from 9a04c500f17d8df20a017137211d0984cace98ff in
debian's repository [0].

[0] https://salsa.debian.org/zfsonlinux-team/zfs.git

Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2020-10-08 10:25:35 +02:00
Thomas Lamprecht eebb1ff15a bump version to 0.8.4-pve2
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2020-09-29 05:55:50 +02:00
Thomas Lamprecht 5d367893ae zfs-import template: do not require systemd-udev-settle service
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2020-09-29 05:55:50 +02:00
Stoiko Ivanov e3da0bd88a Add systemd-unit for importing specific pools
This patch addresses the problems some users experience when some zpools are
created/imported with cachefile (which then causes other pools not to get
imported during boot) - when our tooling creates a pool we explictly
instantiate the service with the pool's name, ensuring that it will get
imported by scanning.

Suggested-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
2020-09-29 05:29:46 +02:00
Thomas Lamprecht 38e2c8078f bump version to 0.8.4-pve1
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2020-05-14 10:39:14 +02:00
Stoiko Ivanov 5bce71e23a Remove the unnecessary --with systemd dh option.
adapted from debian-upstream [0] commit
53276c973c5e69f75b43371a6c94adc5d9dcfec0
(the systemd sequence is enabled by default since debhelper v10 - see
debhelper(7))

[0] https://salsa.debian.org/zfsonlinux-team/zfs.git

Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
2020-05-14 10:33:31 +02:00
Stoiko Ivanov 4736641e76 Bump Standards-Version to 4.5.0 (no change).
Compared the entries in the Debian Policy Manual's upgrade checklist [0]

inspired by debian-upstream [1] commit d756d10a40607bd2b9599aa959b2aa1738551e72

[0] https://www.debian.org/doc/debian-policy/upgrading-checklist.html
[1] https://salsa.debian.org/zfsonlinux-team/zfs.git

Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
2020-05-14 10:33:31 +02:00
Antonio Russo 9be12e4d30 Refresh debian/not-installed
/etc/default/zfs and /etc/zfs/zfs-functions are now installed by the
makefiles.  Continue to install them directly as before, but do not
--fail-missing because of them.

adapted from debian-upstream [0] commit
9a594875114fe186aebba2776b14817ab7f272ae

[0] https://salsa.debian.org/zfsonlinux-team/zfs.git

Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
2020-05-14 10:33:31 +02:00
Antonio Russo 33baf9d7be Add dependencies for zfs-test
nfs-kernel-server is required for some tests

Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
2020-05-14 10:33:31 +02:00
Antonio Russo 7bc48bd452 Use installed python3
adapted from debian-upstream [0] commit
594e747e14f3051513ea499c40c17cadb5d0e92b

[0] https://salsa.debian.org/zfsonlinux-team/zfs.git

Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
2020-05-14 10:33:31 +02:00
Stoiko Ivanov 46c5edb571 update submodule and patches for zfs-0.8.4
Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
2020-05-14 10:33:31 +02:00
Stoiko Ivanov dd9acc98eb add ident to zedlet-list creation patch
the last series of cherry-picks from salsa.d.o includes one patch for the
zfs-source, but the patch file does not contain ident-information.
This prevents it from being applied by import-patchqueue.

Fixed by adding ident based on the original patches commit message and
importing and exporting the patchqueue.

Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
2020-03-27 07:37:32 +01:00
Antonio Russo 4d56f4c5b5 Preserve /etc/zfs/zed.d configuration on upgrade
Of the zedlet scripts shipped by upstream, a subset are enabled by
default, by creating symlinks in /etc/zfs/zed.d.  These symlinks are
shipped in the zfs-zed package.  dpkg, however, does not support
conffile handling of symlinks, and therefore any changes (removals) to
the symlinks are not preserved on package upgrade.

To address this policy violation, we:

 1. During package build, create a list of enabled-by-default zedlets,
    instead of creating symlinks.
 2. On package removal, identify all enabled-by-default zedlets whose
    symlinks do not exist (i.e., were removed by the user). This is done
    by creating "whiteout" links to /dev/null in their place).
 3. On package installation, create links to enabled-by-default zedlets
    UNLESS there is already a file there (i.e., abort if there is a
    whiteout link).
 4. We also clean up broken symlinks to removed zedlets at package
    postinst.

(cherry picked and adapted from 5cee380324d74e640d5dd7a360faba3994c8007f [0])

[0] https://salsa.debian.org/zfsonlinux-team/zfs.git

Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
2020-03-23 08:08:11 +01:00
Mo Zhou 475af1bc20 Refresh upstream Git repo URL in d/copyright.
(cherry picked from 7916839f3f9f8735b6ee18ee4e25cf1670963272 [0])

[0] https://salsa.debian.org/zfsonlinux-team/zfs.git
Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
2020-03-23 08:08:11 +01:00
Richard Laager 4472322f60 cron: Do not error if already scrubbing
If a pool is already scrubbing, zpool scrub will return an error.  This
breaks the cron scrub script.  It outputs that error and then does not
scrub any further pools.

This change checks to see if the pool is scrubbing before attempting to
start a scrub.  This addresses long-running scrubs.  Note that a
"long-running" scrub here is not necessarily a month long.  If the
system is shut off or the pool is exported, the scrub will resume later.

(cherry picked from 41e457da7bfc837a52f3389cb6961bc6737b874d [0])

[0]  https://salsa.debian.org/zfsonlinux-team/zfs.git

Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
2020-03-23 08:08:11 +01:00
Stoiko Ivanov 9fda81f807 Reword ZFS Description
(cherry-picked and adapted from  ff8fbee152caa6b995839dae723dab484c3d295a [0])

[0] https://salsa.debian.org/zfsonlinux-team/zfs.git

Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
2020-03-23 08:08:11 +01:00
Thomas Lamprecht 943c54360f bump version to 0.8.3-pve1
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2020-01-24 09:11:55 +01:00
Thomas Lamprecht 99c0cd88af update submodule and patches for zfs-0.8.3
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2020-01-24 09:11:47 +01:00
Thomas Lamprecht a18306641a bump version to 0.8.2-pve2
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-10-23 17:14:27 +02:00
Thomas Lamprecht 8f11c72175 FPU/SIMD: separate ZFS and Kernel approach for less interference
github pull-request #9406[0].

[0]: https://github.com/zfsonlinux/zfs/pull/9406#event-2704412478

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-10-23 17:09:58 +02:00
Thomas Lamprecht 45fdd1f323 cherry-pick: Perform KABI checks in parallel
This reduces the required time for the configure step drastically,
from previous:
 # time ./configure --with-config=kernel
 -> 124.14s user 34.06s system 103% cpu 2:32.90 total
to now:
 # time ./configure --with-config=kernel
 -> 75.07s user 15.01s system 394% cpu 22.821 total

(152 seconds vs 22 seconds)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-10-02 15:47:13 +02:00
Thomas Lamprecht 7c8450b4b1 buildsys: ensure that all sources are copied over to the build directory
The copy command:
 # cp -a ${ZFSSRC}/* ${ZFSDIR}/
did not copied over hidden files (those beginning with a dot) and
thus a upstream patches which changed also .gitignore did not worked
when copied over 1:1, instead of removing the changes to .gitignore
it's IMO better to copy the full sources ensuring the whole state of
the upstream project source repo is used.

With submodules we still do not copy over a potential big .git
folder, as we as submodule user have the submodules .git state in our
.git/modules folder where the submodule just references to.

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-10-02 15:47:04 +02:00
Thomas Lamprecht 34f271eaf0 followup: fpu struct initialized member was removed with 5.2
That's why it was guarded with the "HAVE_KERNEL_FPU_INITIALIZED"
defined in the first place..

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-10-02 07:20:58 +02:00
Thomas Lamprecht 97bcaf4bef bump version to 0.8.2-pve1
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-09-30 06:59:38 +02:00
Thomas Lamprecht 955a8beadf d/zfsutils-linux: add new zfs-volume-wait related files to install list
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-09-30 06:59:38 +02:00
Thomas Lamprecht 08743f90d9 update submodule and patches to 0.8.2
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-09-30 06:59:38 +02:00
Thomas Lamprecht 33e3621234 d/rules: use dh_missing instead of dh_install --fail-missing
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-09-30 06:50:45 +02:00
Thomas Lamprecht 69255727d0 bump version to 0.8.1-pve3
only to mark the patched kernel module with a new version,
user space tools and packages where not changed.

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-09-27 14:41:30 +02:00
Thomas Lamprecht 457c4458a2 [SIMD]: FPU register save/restore is also required on 5.0 kernels~
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
Acked-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
2019-09-27 14:34:14 +02:00
Thomas Lamprecht 9cad433df9 bump version to 0.8.1-pve2
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-08-20 17:10:24 +02:00
Fabian Grünbichler d1002ffe2c drop no longer needed build-dependencies
see https://github.com/zfsonlinux/zfs/issues/9036

Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
2019-08-12 16:58:23 +02:00
Fabian Grünbichler f43dbfa752 cherry-pick SIMD compat patches
Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
2019-08-12 16:58:23 +02:00
Fabian Grünbichler ee9e6a91e5 cherry-pick parallel mount fix
Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
2019-08-12 16:58:23 +02:00
Thomas Lamprecht a14f5e761c bump version to 0.8.1-pve1
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-06-14 20:43:36 +02:00
Thomas Lamprecht 79736c677e update patches for zfs-0.8.1
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-06-14 20:42:29 +02:00
Thomas Lamprecht 7ef1f901d7 update submodule to zfs-0.8.1
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-06-14 20:36:48 +02:00
Thomas Lamprecht f3e3232bf4 bump version to 0.8.0-pve1
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-05-24 13:05:43 +02:00
Thomas Lamprecht 49538a61c8 d/control: fix priority-extra-is-replaced-by-priority-optional
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-05-24 13:05:43 +02:00
Thomas Lamprecht 63bd3935c7 ensure submodule gets initialized on fresh clone and build
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-05-24 13:05:43 +02:00
Thomas Lamprecht ae14379f41 d/control: remove dependencies detected by useless-autoreconf-build-depends
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-05-24 13:05:43 +02:00
Thomas Lamprecht 13d410f1ab buildsys: remove cruft and reoder var definition before use
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-05-24 12:35:21 +02:00
Stoiko Ivanov 886e4c966e Move zfs to top-level directory
With the merge of spl and zfs the extra level of directories is not needed
anymore.

Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
2019-05-24 12:02:52 +02:00
Stoiko Ivanov 9e02600b0c add 3 patches for lintian errors
* wrong-path-for-interpreter is a lintian error, one single zfs-test used
/usr/bin/ksh instead of /bin/ksh.
* python-script-but-no-python-dep was reported because test-runner.py had
/usr/bin/python as shebang, but the buildsystem and our dependencies expected
/usr/bin/python3
* executable-not-elf-or-script were results of some files being installed with
the wrong permissions

Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
2019-05-24 12:02:46 +02:00
Stoiko Ivanov da2c3b42fa debian/control: set zfs-dbg priority to extra
in order to appease lintian

Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
2019-05-24 12:02:41 +02:00
Thomas Lamprecht 402acca54f spl: remove submodule and debian folder
Co-authored-by: Stoiko Ivanov <s.ivanov@proxmox.com>
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-05-24 12:02:02 +02:00
Stoiko Ivanov 146da5ad07 debian/docs: change OPENSOLARIS.LICENSE to LICENSE
taken from debian upstream [0]

[0] https://salsa.debian.org/zfsonlinux-team/zfs/

Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
2019-05-24 11:44:42 +02:00
Stoiko Ivanov 92886af5c5 add python3-pyzfs binary package
taken from debian upstream [0]

[0] https://salsa.debian.org/zfsonlinux-team/zfs/

Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
2019-05-24 11:44:34 +02:00
Stoiko Ivanov 512fb2e4a9 zfs/control: add spl as transitional dummy package
since splat has been removed from zfs (during the repository merge of zfs and
spl, the userspace spl package does not contain any files (apart from metafiles)

keep the package as metapackage, s.t. the old splat manpage and binary gets
removed upon upgrade.

Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
2019-05-24 11:44:34 +02:00
Stoiko Ivanov 5b9cd1ad57 zfsutils-linux: persist hostid in postinst script
/etc/hostid does not exist on a minimal debian system.
ZFS reads its contents for MMP (zpool property multihost set to on), and needs
the value to be stable.
Before the SPL->ZFS merge the spl userspace package wrote the file (by parsing/
mangling the output of hostid (1)) Since ZFS provides the zgenhostid script,
which creates a random 4 byte hostid and writes it to /etc/hostid, we use that
instead. (hostid (1) default to mangling a configured ip of the system, which
can be the same across multiple installs (install happens with the same ip)

Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
2019-05-24 11:44:34 +02:00
Stoiko Ivanov 4114f700a9 debian/rules: adapt to ZFS 0.8
Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
2019-05-24 11:44:34 +02:00
Stoiko Ivanov d551e00492 debian: adapt install paths to ZFS 0.8
Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
2019-05-24 11:44:34 +02:00
Stoiko Ivanov 5dccc94923 zfs/debian: embed downstream revision in META file
taken from spl/debian/rules
Additionally refactor the actual change into a separate target.
This is needed when building the kernel-modules from an rc-tag (e.g. 0.8.0-rc5)

Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
2019-05-24 11:44:34 +02:00
Stoiko Ivanov e4f11a69e8 rebase patches on top of zfs-0.8.0
rebase done with export-patchqueue and adapted to new 0.8 release

Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
2019-05-24 11:44:34 +02:00
Stoiko Ivanov d56eab879e debian: replace zpool.d patch by configure option
the --with-zfsexecdir configure option is available in ZFS 0.8 and replaces
the patch for cmd/zpool/Makefile.am

(cherry-picked from salsa.d.o e1af594a0970e2b84c922f483e6798e7d155b7b7)

Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
2019-05-24 11:44:34 +02:00
Stoiko Ivanov 58608b5f2e update ZFS to 0.8.0
Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
2019-05-24 11:44:34 +02:00
Thomas Lamprecht 8c9433c855 buildsys: switch upload dist over to buster
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-05-24 11:14:08 +02:00
Thomas Lamprecht 88b4c00190 bump version to 0.7.13-pve2~bpo2
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2019-05-21 20:09:12 +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
115 changed files with 5359 additions and 4627 deletions
+7
View File
@@ -0,0 +1,7 @@
/*.build
/*.buildinfo
/*.changes
/*.deb
/*.dsc
/*.tar*
/zfs-utils-*.*/
+3 -6
View File
@@ -1,6 +1,3 @@
[submodule "zfs-debian"]
path = zfs-debian
url = ../mirror_zfs-debian
[submodule "spl-debian"]
path = spl-debian
url = ../mirror_spl-debian
[submodule "zfs/upstream"]
path = upstream
url = ../mirror_zfs
+69 -55
View File
@@ -1,79 +1,93 @@
RELEASE=5.1
include /usr/share/dpkg/default.mk
# source form https://github.com/zfsonlinux/
ZFSVER=0.7.6
ZFSPKGREL=pve1~bpo9
SPLPKGREL=pve1~bpo9
ZFSPKGVER=${ZFSVER}-${ZFSPKGREL}
SPLPKGVER=${ZFSVER}-${SPLPKGREL}
PACKAGE = zfs-linux
SPLDIR=spl-build
SPLSRC=spl-debian
ZFSDIR=zfs-build
ZFSSRC=zfs-debian
SRCDIR = upstream
BUILDDIR ?= $(PACKAGE)-$(DEB_VERSION_UPSTREAM)
ORIG_SRC_TAR = $(PACKAGE)_$(DEB_VERSION_UPSTREAM).orig.tar.gz
SPL_DEBS= \
spl_${SPLPKGVER}_amd64.deb
ZFS_DEB1= libnvpair3linux_$(DEB_VERSION)_amd64.deb
ZFS_DEBS= \
libnvpair1linux_${ZFSPKGVER}_amd64.deb \
libuutil1linux_${ZFSPKGVER}_amd64.deb \
libzfs2linux_${ZFSPKGVER}_amd64.deb \
libzfslinux-dev_${ZFSPKGVER}_amd64.deb \
libzpool2linux_${ZFSPKGVER}_amd64.deb \
zfs-dbg_${ZFSPKGVER}_amd64.deb \
zfs-zed_${ZFSPKGVER}_amd64.deb \
zfs-initramfs_${ZFSPKGVER}_all.deb \
zfs-test_${ZFSPKGVER}_amd64.deb \
zfsutils-linux_${ZFSPKGVER}_amd64.deb
ZFS_DEB_BINARY = \
libpam-zfs_$(DEB_VERSION)_amd64.deb \
libuutil3linux_$(DEB_VERSION)_amd64.deb \
libzfs4linux_$(DEB_VERSION)_amd64.deb \
libzfsbootenv1linux_$(DEB_VERSION)_amd64.deb \
libzpool5linux_$(DEB_VERSION)_amd64.deb \
zfs-test_$(DEB_VERSION)_amd64.deb \
zfsutils-linux_$(DEB_VERSION)_amd64.deb \
zfs-zed_$(DEB_VERSION)_amd64.deb
DEBS=${SPL_DEBS} ${ZFS_DEBS}
ZFS_DBG_DEBS = $(patsubst %_$(DEB_VERSION)_amd64.deb, %-dbgsym_$(DEB_VERSION)_amd64.deb, $(ZFS_DEB1) $(ZFS_DEB_BINARY))
ZFS_DEB2= $(ZFS_DEB_BINARY) \
libzfslinux-dev_$(DEB_VERSION)_amd64.deb \
python3-pyzfs_$(DEB_VERSION)_amd64.deb \
pyzfs-doc_$(DEB_VERSION)_all.deb \
spl_$(DEB_VERSION)_all.deb \
zfs-initramfs_$(DEB_VERSION)_all.deb
DEBS= $(ZFS_DEB1) $(ZFS_DEB2) $(ZFS_DBG_DEBS)
ZFS_DSC = zfs-linux_$(DEB_VERSION).dsc
all: deb
deb: ${DEBS}
.PHONY: deb dsc
deb: $(DEBS)
dsc:
rm -rf *.dsc $(BUILDDIR)
$(MAKE) $(ZFS_DSC)
lintian $(ZFS_DSC)
# called from pve-kernel's Makefile to get patched sources
.PHONY: kernel
kernel: $(ZFS_DSC)
dpkg-source -x $(ZFS_DSC) ../pkg-zfs
$(MAKE) -C ../pkg-zfs -f debian/rules adapt_meta_file
.PHONY: dinstall
dinstall: ${DEBS}
dpkg -i ${DEBS}
dinstall: $(DEBS)
dpkg -i $(DEBS)
.PHONY: submodule
submodule:
test -f "${ZFSSRC}/debian/changelog" || git submodule update --init
test -f "${SPLSRC}/debian/changelog" || git submodule update --init
test -f "$(SRCDIR)/README.md" || git submodule update --init
.PHONY: spl
spl ${SPL_DEBS}: ${SPLSRC}
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
$(SRCDIR)/README.md: submodule
.PHONY: zfs
zfs ${ZFS_DEBS} ${ZFS_TRANS_DEBS}: ${ZFSSRC}
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
zfs: $(DEBS)
$(ZFS_DEB2) $(ZFS_DBG_DEBS): $(ZFS_DEB1)
$(ZFS_DEB1): $(BUILDDIR)
cd $(BUILDDIR); dpkg-buildpackage -b -uc -us
lintian $(DEBS)
$(ORIG_SRC_TAR): $(BUILDDIR)
tar czf $(ORIG_SRC_TAR) --exclude="$(BUILDDIR)/debian" $(BUILDDIR)
$(ZFS_DSC): $(BUILDDIR) $(ORIG_SRC_TAR)
cd $(BUILDDIR); dpkg-buildpackage -S -uc -us -d
sbuild: $(ZFS_DSC)
sbuild $(ZFS_DSC)
$(BUILDDIR): $(SRCDIR)/README.md $(SRCDIR) debian
rm -rf $@ $@.tmp
cp -a $(SRCDIR) $@.tmp
cp -a debian $@.tmp/debian
mv $@.tmp $@
.PHONY: clean
clean:
rm -rf *~ *.deb *.changes *.buildinfo ${ZFSDIR} ${SPLDIR}
rm -rf $(PACKAGE)-[0-9]*/
rm -f *~ *.deb *.changes *.buildinfo *.build *.dsc *.orig.tar.* *.debian.tar.*
.PHONY: distclean
distclean: clean
.PHONY: upload
upload: ${DEBS}
tar -cf - ${DEBS} | ssh repoman@repo.proxmox.com -- upload --product pve --dist stretch --arch amd64
upload: UPLOAD_DIST ?= $(DEB_DISTRIBUTION)
upload: $(DEBS)
tar -cf - $(DEBS) | ssh repoman@repo.proxmox.com -- upload --product pve,pmg,pbs --dist $(UPLOAD_DIST) --arch $(DEB_HOST_ARCH)
+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.
+997
View File
@@ -0,0 +1,997 @@
zfs-linux (2.2.4-pve1) bookworm; urgency=medium
* update to new ZFS upstream 2.2.4 release
-- Proxmox Support Team <support@proxmox.com> Tue, 04 Jun 2024 11:11:48 +0200
zfs-linux (2.2.3-pve2) bookworm; urgency=medium
* fix #4835: order zfs-import@ before -cache/-scan
* backport (module) patches from the 2.2.4 staging tree for better Linux 6.8
support
-- Proxmox Support Team <support@proxmox.com> Mon, 08 Apr 2024 17:43:35 +0200
zfs-linux (2.2.3-pve1) bookworm; urgency=medium
* update to new ZFS upstream 2.2.3 release
* fix #5288: correctly handle zvols with more than 15 partitions in udev
-- Proxmox Support Team <support@proxmox.com> Mon, 11 Mar 2024 13:42:50 +0100
zfs-linux (2.2.2-pve2) bookworm; urgency=medium
* fix #5101: ensure datasets that have sharenfs enabled are not unexported
after a `zfs mount -a` call.
-- Proxmox Support Team <support@proxmox.com> Mon, 19 Feb 2024 16:56:37 +0100
zfs-linux (2.2.2-pve1) bookworm; urgency=medium
* update to new ZFS upstream 2.2.2 release, as we have all important fixes
for recent discovered data integrity issues backported to previous
versions, there should be no visible change in that regard.
-- Proxmox Support Team <support@proxmox.com> Mon, 04 Dec 2023 16:50:25 +0100
zfs-linux (2.2.0-pve4) bookworm; urgency=medium
* pick bug-fix staged for 2.2.2:
- fix (rare) corruption caused by dirty dnode being treated as clean
-- Proxmox Support Team <support@proxmox.com> Wed, 29 Nov 2023 09:21:26 +0100
zfs-linux (2.2.0-pve3) bookworm; urgency=medium
* pick bug-fixes staged for 2.2.1:
- add a tunable to disable BRT support and disable it by default
- fix block cloning between unencrypted and encrypted datasets
- disable block cloning by default
-- Proxmox Support Team <support@proxmox.com> Fri, 17 Nov 2023 17:32:58 +0100
zfs-linux (2.2.0-pve2) bookworm; urgency=medium
* avoid error from zfs-mount when /etc/exports.d does not exist (yet)
* ensure vdev_stat struct layout compat between 2.1 and 2.2, avoiding
false-positive detection of the non-allocating feature from 2.2 when the
kernel still used the 2.1 module.
-- Proxmox Support Team <support@proxmox.com> Sun, 12 Nov 2023 16:02:02 +0100
zfs-linux (2.2.0-pve1) bookworm; urgency=medium
* update ZFS to 2.2.0
* zfsutils-linux:
- install new systemd units to trim a pool periodically
- ship new `zilstat` binary
- and new man pages for zfs lock, zfs unlock and vdev properties
- remove man pages for zfs jail and zfs unjail, those are for FreeBSD only
and the respective commands where never exposed for Linux
* fix #5014: re-enable blk-mq optimization
-- Proxmox Support Team <support@proxmox.com> Sun, 15 Oct 2023 12:09:24 +0200
zfs-linux (2.1.13-pve1) bookworm; urgency=medium
* update ZFS to 2.1.13
-- Proxmox Support Team <support@proxmox.com> Thu, 28 Sep 2023 12:22:28 +0200
zfs-linux (2.1.12-pve1) bookworm; urgency=medium
* update ZFS to 2.1.12
* zfs trim: avoid exit-failure if last pool isn't nvme-only
-- Proxmox Support Team <support@proxmox.com> Tue, 13 Jun 2023 15:25:16 +0200
zfs-linux (2.1.11-pve2) bookworm; urgency=medium
* re-build for Debian 12 Bookworm based releases
-- Proxmox Support Team <support@proxmox.com> Sat, 20 May 2023 19:32:04 +0200
zfs-linux (2.1.11-pve1) bullseye; urgency=medium
* update ZFS to 2.1.11
-- Proxmox Support Team <support@proxmox.com> Thu, 20 Apr 2023 09:30:53 +0200
zfs-linux (2.1.9-pve1) bullseye; urgency=medium
* update ZFS to 2.1.9
-- Proxmox Support Team <support@proxmox.com> Sat, 28 Jan 2023 15:03:22 +0100
zfs-linux (2.1.7-pve3) bullseye; urgency=medium
* backport a fix for as potentially hanging pipe when resizing it on recv
* backport a fix for setting extended attributes (xattr)
* adapt to 6.1 changes for open syscall with TMPFILE option
-- Proxmox Support Team <support@proxmox.com> Sat, 07 Jan 2023 13:21:57 +0100
zfs-linux (2.1.7-pve2) bullseye; urgency=medium
* backport fix for initramfs script when detecting rootfs legacy mountpoints
-- Proxmox Support Team <support@proxmox.com> Mon, 02 Jan 2023 17:07:18 +0100
zfs-linux (2.1.7-pve1) bullseye; urgency=medium
* update ZFS to 2.1.7
-- Proxmox Support Team <support@proxmox.com> Tue, 06 Dec 2022 16:41:31 +0100
zfs-linux (2.1.6-pve1) bullseye; urgency=medium
* update ZFS to 2.1.6
* symlink zpool_influxdb to /bin
* symlink zfs, zpool to /bin/ for non-root usage
-- Proxmox Support Team <support@proxmox.com> Tue, 04 Oct 2022 16:09:17 +0200
zfs-linux (2.1.5-pve1) bullseye; urgency=medium
* update ZFS to 2.1.5
* Build with libcurl for new keylocation=https://
* d/control: add new zfs-dracut package
-- Proxmox Support Team <support@proxmox.com> Tue, 28 Jun 2022 16:13:24 +0200
zfs-linux (2.1.4-pve1) bullseye; urgency=medium
* update ZFS to 2.1.4
-- Proxmox Support Team <support@proxmox.com> Thu, 24 Mar 2022 09:28:50 +0100
zfs-linux (2.1.3-pve1) bullseye; urgency=medium
* update ZFS to 2.1.3
-- Proxmox Support Team <support@proxmox.com> Fri, 11 Mar 2022 16:36:22 +0100
zfs-linux (2.1.2-pve1) bullseye; urgency=medium
* update ZFS to 2.1.2
-- Proxmox Support Team <support@proxmox.com> Tue, 11 Jan 2022 11:31:34 +0100
zfs-linux (2.1.1-pve3) bullseye; urgency=medium
* zfs-utils: arc stat/summary: guard access to l2arc MFU/MRU stats to avoid
bogus exception when checking the ARC stats/summary on a older, 2.0 based
ZFS kernel module with the newer, 2.1 based, user space tools.
-- Proxmox Support Team <support@proxmox.com> Wed, 10 Nov 2021 09:58:31 +0100
zfs-linux (2.1.1-pve1) bullseye; urgency=medium
* update ZFS to 2.1.1
-- Proxmox Support Team <support@proxmox.com> Tue, 28 Sep 2021 06:16:14 +0200
zfs-linux (2.0.5-pve1) bullseye; urgency=medium
* update ZFS to 2.0.5
* do not restart most services upon upgrade
* add a script and cronjob for regular trimming of pools
-- Proxmox Support Team <support@proxmox.com> Fri, 09 Jul 2021 18:23:58 +0200
zfs-linux (2.0.4-pve1) pve pmg; urgency=medium
* update ZFS to 2.0.4
-- Proxmox Support Team <support@proxmox.com> Thu, 18 Mar 2021 13:31:18 +0100
zfs-linux (2.0.3-pve2) pve pmg; urgency=medium
* match package names to the ones used by Debian
-- Proxmox Support Team <support@proxmox.com> Thu, 25 Feb 2021 13:06:07 +0100
zfs-linux (2.0.3-pve1) pve pmg; urgency=medium
* buildsys: make libpam-zfs a separate package
* update ZFS to 2.0.3
-- Proxmox Support Team <support@proxmox.com> Mon, 15 Feb 2021 15:46:03 +0100
zfs-linux (2.0.2-pve1) pve pmg; urgency=medium
* update ZFS to 2.0.2
-- Proxmox Support Team <support@proxmox.com> Sat, 06 Feb 2021 10:23:03 +0100
zfs-linux (2.0.1-pve1) pve pmg; urgency=medium
* update ZFS to 2.0.1
-- Proxmox Support Team <support@proxmox.com> Wed, 13 Jan 2021 14:16:02 +0100
zfs-linux (0.8.5-pve1) pve pmg; urgency=medium
* update ZFS to 0.8.5
-- Proxmox Support Team <support@proxmox.com> Thu, 08 Oct 2020 10:45:28 +0200
zfs-linux (0.8.4-pve2) pve pmg; urgency=medium
* add systemd-unit for importing specific pools
-- Proxmox Support Team <support@proxmox.com> Tue, 29 Sep 2020 05:31:35 +0200
zfs-linux (0.8.4-pve1) pve pmg; urgency=medium
* update ZFS to 0.8.4
-- Proxmox Support Team <support@proxmox.com> Thu, 14 May 2020 10:39:11 +0200
zfs-linux (0.8.3-pve1) pve pmg; urgency=medium
* update ZFS to 0.8.3
-- Proxmox Support Team <support@proxmox.com> Fri, 24 Jan 2020 09:10:41 +0100
zfs-linux (0.8.2-pve2) pve pmg; urgency=medium
* save and restore the FPU state using ZFS dedicated per-cpu FPU state
variables.
-- Proxmox Support Team <support@proxmox.com> Wed, 23 Oct 2019 17:14:22 +0200
zfs-linux (0.8.2-pve1) pve pmg; urgency=medium
* update to new 0.8.2 upstream stable release
-- Proxmox Support Team <support@proxmox.com> Sat, 28 Sep 2019 08:34:53 +0200
zfs-linux (0.8.1-pve3) pve pmg; urgency=medium
* [SIMD]: FPU register save/restore is also required on 5.0 kernel.
strict kernel module release, user space tooling is not touched
-- Proxmox Support Team <support@proxmox.com> Fri, 27 Sep 2019 14:37:32 +0200
zfs-linux (0.8.1-pve2) pve pmg; urgency=medium
* cherry-pick parallel mount fix
* cherry-pick SIMD compat patches
-- Proxmox Support Team <support@proxmox.com> Tue, 20 Aug 2019 17:10:11 +0200
zfs-linux (0.8.1-pve1) pve pmg; urgency=medium
* update ZFS to 0.8.1
-- Proxmox Support Team <support@proxmox.com> Fri, 14 Jun 2019 20:43:10 +0200
zfs-linux (0.8.0-pve1) pve pmg; urgency=medium
* update ZFS to 0.8.0
* SPL is now included in upstream ZFS packaging.
Build dummy spl and spl-dkms packages to ease transition on upgrades.
* Build pyzfs+documentation package
* Use arc_summary3.py to provide arc_summary.
* shipped python scripts now use python3
-- Proxmox Support Team <support@proxmox.com> Fri, 24 May 2019 12:05:22 +0200
zfs-linux (0.7.13-pve2~bpo2) pve pmg; urgency=medium
* rebuild for PVE 6.0 / Debian Buster
-- Proxmox Support Team <support@proxmox.com> Tue, 21 May 2019 20:08:45 +0200
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
+288
View File
@@ -0,0 +1,288 @@
Source: zfs-linux
Section: contrib/kernel
Priority: optional
Maintainer: Proxmox Support Team <support@proxmox.com>
Build-Depends: abigail-tools,
debhelper-compat (= 12),
dh-python,
libaio-dev,
libblkid-dev,
libcurl4-openssl-dev | libcurl4-gnutls-dev,
libelf-dev,
libpam0g-dev,
libssl-dev | libssl1.0-dev,
libtool,
libudev-dev,
lsb-release,
python3-cffi,
python3-setuptools,
python3-sphinx,
python3-all-dev,
uuid-dev,
zlib1g-dev
Standards-Version: 4.5.1
Homepage: https://www.zfsonlinux.org/
Vcs-Git: https://git.proxmox.com/git/zfsonlinux.git
Vcs-Browser: https://git.proxmox.com/?p=zfsonlinux.git;a=summary
Package: libnvpair3linux
Section: contrib/libs
Architecture: linux-any
Depends: ${misc:Depends}, ${shlibs:Depends}
Breaks: libnvpair1, libnvpair1linux, libnvpair2linux, libnvpair3
Replaces: libnvpair1, libnvpair1linux, libnvpair2linux, libnvpair3
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: libpam-zfs
Section: contrib/admin
Architecture: linux-any
Depends: libpam-runtime, ${misc:Depends}, ${shlibs:Depends}
Description: PAM module for managing encryption keys for ZFS
OpenZFS is a storage platform that encompasses the functionality of
traditional filesystems and volume managers. It supports data checksums,
compression, encryption, snapshots, and more.
.
This provides a Pluggable Authentication Module (PAM) that automatically
unlocks encrypted ZFS datasets upon login.
Package: libuutil3linux
Section: contrib/libs
Architecture: linux-any
Depends: ${misc:Depends}, ${shlibs:Depends}
Breaks: libuutil1, libuutil1linux, libuutil2linux, libuutil3
Replaces: libuutil1, libuutil1linux, libuutil2linux, libuutil3
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: libssl-dev | libssl1.0-dev,
libnvpair3linux (= ${binary:Version}),
libuutil3linux (= ${binary:Version}),
libzfs4linux (= ${binary:Version}),
libzfsbootenv1linux (= ${binary:Version}),
libzpool5linux (= ${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 libnvpair3, libuutil3,
libzpool5 and libzfs4, libzfsbootenv1.
Package: libzfs4linux
Section: contrib/libs
Architecture: linux-any
Depends: ${misc:Depends}, ${shlibs:Depends}
# The libcurl4 is loaded through dlopen("libcurl.so.4").
# https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=988521
Recommends: libcurl4
Breaks: libzfs2, libzfs2linux, libzfs3linux, libzfs4
Replaces: libzfs2, libzfs2linux, libzfs3linux, libzfs4
Description: OpenZFS filesystem library for Linux - general support
OpenZFS is a storage platform that encompasses the functionality of
traditional filesystems and volume managers. It supports data checksums,
compression, encryption, snapshots, and more.
.
The OpenZFS library provides support for managing OpenZFS filesystems.
Package: libzfsbootenv1linux
Section: contrib/libs
Architecture: linux-any
Depends: ${misc:Depends}, ${shlibs:Depends}
Breaks: libzfs2, libzfs4
Replaces: libzfs2, libzfs4
Description: OpenZFS filesystem library for Linux
OpenZFS is a storage platform that encompasses the functionality of
traditional filesystems and volume managers. It supports data checksums,
compression, encryption, snapshots, and more.
.
The zfsbootenv library provides support for modifying ZFS label information.
Package: libzpool5linux
Section: contrib/libs
Architecture: linux-any
Depends: ${misc:Depends}, ${shlibs:Depends}
Breaks: libzpool2, libzpool2linux, libzpool3linux, libzpool4
Replaces: libzpool2, libzpool2linux, libzpool3linux, libzpool4
Description: OpenZFS pool library for Linux
OpenZFS is a storage platform that encompasses the functionality of
traditional filesystems and volume managers. It supports data checksums,
compression, encryption, snapshots, and more.
.
This zpool library provides support for managing zpools.
Package: python3-pyzfs
Section: contrib/python
Architecture: linux-any
Depends: ${misc:Depends},
${python3:Depends},
python3-cffi,
zfsutils-linux (= ${binary:Version})
Description: wrapper for libzfs_core C library
libzfs_core is intended to be a stable interface for programmatic
administration of ZFS. This wrapper provides one-to-one wrappers for
libzfs_core API functions, but the signatures and types are more natural to
Python.
.
nvlists are wrapped as dictionaries or lists depending on their usage.
Some parameters have default values depending on typical use for
increased convenience. Enumerations and bit flags become strings and lists
of strings in Python. Errors are reported as exceptions rather than integer
errno-style error codes. The wrapper takes care to provide one-to-many
mapping of the error codes to the exceptions by interpreting a context
in which the error code is produced.
Package: pyzfs-doc
Section: contrib/doc
Architecture: all
Depends:
${sphinxdoc:Depends},
${sphinxdoc:Built-Using},
${misc:Depends}
Recommends:
python3-pyzfs
Description: wrapper for libzfs_core C library (documentation)
libzfs_core is intended to be a stable interface for programmatic
administration of ZFS. This wrapper provides one-to-one wrappers for
libzfs_core API functions, but the signatures and types are more natural to
Python.
.
nvlists are wrapped as dictionaries or lists depending on their usage.
Some parameters have default values depending on typical use for
increased convenience. Enumerations and bit flags become strings and lists
of strings in Python. Errors are reported as exceptions rather than integer
errno-style error codes. The wrapper takes care to provide one-to-many
mapping of the error codes to the exceptions by interpreting a context
in which the error code is produced.
.
This package contains the documentation.
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
OpenZFS is a storage platform that encompasses the functionality of
traditional filesystems and volume managers. It supports data checksums,
compression, encryption, snapshots, and more.
.
This package adds OpenZFS to the system initramfs with a hook
for the initramfs-tools infrastructure.
Package: zfs-dracut
Architecture: all
Depends: dracut,
zfsutils-linux (>= ${source:Version}),
${misc:Depends}
Description: OpenZFS root filesystem capabilities for Linux - dracut
OpenZFS is a storage platform that encompasses the functionality of
traditional filesystems and volume managers. It supports data checksums,
compression, encryption, snapshots, and more.
.
This package adds OpenZFS to the system initramfs with a hook
for the dracut infrastructure.
Package: zfsutils-linux
Section: contrib/admin
Architecture: linux-any
Depends: python3, ${misc:Depends}, ${shlibs:Depends}
Recommends: 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
OpenZFS is a storage platform that encompasses the functionality of
traditional filesystems and volume managers. It supports data checksums,
compression, encryption, snapshots, and more.
.
This package 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}
Recommends: bsd-mailx | mailutils
Description: OpenZFS Event Daemon
OpenZFS is a storage platform that encompasses the functionality of
traditional filesystems and volume managers. It supports data checksums,
compression, encryption, snapshots, and more.
.
ZED (ZFS Event Daemon) monitors events generated by the ZFS kernel
module. When a zevent (ZFS Event) is posted, ZED will run any ZEDLETs
(ZFS Event Daemon Linkage for Executable Tasks) that have been enabled
for the corresponding zevent class.
.
This package provides the OpenZFS Event Daemon (zed).
Package: zfs-test
Section: contrib/admin
Architecture: linux-any
Depends: acl,
attr,
bc,
fio,
ksh,
lsscsi,
mdadm,
parted,
python3,
python3-pyzfs,
sudo,
sysstat,
zfsutils-linux (>=${binary:Version}),
${misc:Depends},
${shlibs:Depends}
Recommends: nfs-kernel-server
Breaks: zfsutils-linux (<= 0.7.9-2)
Replaces: zfsutils-linux (<= 0.7.9-2)
Conflicts: zutils
Description: OpenZFS test infrastructure and support scripts
OpenZFS is a storage platform that encompasses the functionality of
traditional filesystems and volume managers. It supports data checksums,
compression, encryption, snapshots, and more.
.
This package 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: spl
Section: contrib/metapackages
Architecture: all
Depends: ${misc:Depends},
Suggests: zfs-test
Description: Solaris Porting Layer user-space utilities for Linux (dummy)
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 is a transitional dummy package. It can safely be removed.
+1250
View File
File diff suppressed because it is too large Load Diff
+1161
View File
File diff suppressed because it is too large Load Diff
+2
View File
@@ -0,0 +1,2 @@
COPYRIGHT
LICENSE
+1
View File
@@ -0,0 +1 @@
lib/@DEB_HOST_MULTIARCH@/libnvpair.so.*
+1
View File
@@ -0,0 +1 @@
package-name-doesnt-match-sonames
+2
View File
@@ -0,0 +1,2 @@
lib/*/security/pam_zfs_key.so
usr/share/pam-configs/zfs_key
+6
View File
@@ -0,0 +1,6 @@
#!/bin/sh
set -e
pam-auth-update --package
#DEBHELPER#
+8
View File
@@ -0,0 +1,8 @@
#!/bin/sh
set -e
if [ "$1" = remove ] ; then
pam-auth-update --package --remove zfs_key
fi
#DEBHELPER#
+2
View File
@@ -0,0 +1,2 @@
COPYRIGHT
LICENSE
+1
View File
@@ -0,0 +1 @@
lib/@DEB_HOST_MULTIARCH@/libuutil.so.*
+1
View File
@@ -0,0 +1 @@
package-name-doesnt-match-sonames
+2
View File
@@ -0,0 +1,2 @@
COPYRIGHT
LICENSE
+2
View File
@@ -0,0 +1,2 @@
lib/@DEB_HOST_MULTIARCH@/libzfs.so.*
lib/@DEB_HOST_MULTIARCH@/libzfs_core.so.*
+1
View File
@@ -0,0 +1 @@
package-name-doesnt-match-sonames
+2
View File
@@ -0,0 +1,2 @@
COPYRIGHT
LICENSE
+1
View File
@@ -0,0 +1 @@
lib/libzfsbootenv.so.*
+1
View File
@@ -0,0 +1 @@
lib/@DEB_HOST_MULTIARCH@/libzfsbootenv.so.*
+2
View File
@@ -0,0 +1,2 @@
package-name-doesnt-match-sonames
extra-license-file *usr/share/doc/libzfsbootenv1linux/LICENSE.gz*
+2
View File
@@ -0,0 +1,2 @@
COPYRIGHT
LICENSE
+4
View File
@@ -0,0 +1,4 @@
lib/@DEB_HOST_MULTIARCH@/*.a usr/lib/@DEB_HOST_MULTIARCH@/
usr/include
usr/lib/@DEB_HOST_MULTIARCH@/*.so
/usr/lib/@DEB_HOST_MULTIARCH@/pkgconfig/*.pc
+2
View File
@@ -0,0 +1,2 @@
COPYRIGHT
LICENSE
+1
View File
@@ -0,0 +1 @@
lib/@DEB_HOST_MULTIARCH@/libzpool.so.*
+1
View File
@@ -0,0 +1 @@
package-name-doesnt-match-sonames
+13
View File
@@ -0,0 +1,13 @@
usr/share/zfs/enum-extract.pl
usr/share/zfs/zfs-helpers.sh
etc/default/zfs
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
etc/zfs/zfs-functions
@@ -0,0 +1,70 @@
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
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
---
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 20064a0fb..4d5f545ad 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
@@ -69,8 +71,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}|sed "s/${ZFS_META_NAME}//"|cut -f3- -d'-'|tr - _)
@@ -12,19 +12,18 @@ 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>
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
---
etc/modules-load.d/zfs.conf.in | 2 +-
etc/modules-load.d/zfs.conf | 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
--- a/etc/modules-load.d/zfs.conf.in
+++ b/etc/modules-load.d/zfs.conf.in
diff --git a/etc/modules-load.d/zfs.conf b/etc/modules-load.d/zfs.conf
index 44e1bb3ed..7509b03cb 100644
--- a/etc/modules-load.d/zfs.conf
+++ b/etc/modules-load.d/zfs.conf
@@ -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,27 @@
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.
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
---
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 be2fc6734..7606604ec 100644
--- a/etc/systemd/system/zfs-zed.service.in
+++ b/etc/systemd/system/zfs-zed.service.in
@@ -5,7 +5,7 @@ ConditionPathIsDirectory=/sys/module/zfs
[Service]
EnvironmentFile=-@initconfdir@/zfs
-ExecStart=@sbindir@/zed -F
+ExecStart=/usr/sbin/zed -F
Restart=always
[Install]
@@ -7,23 +7,22 @@ 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>
Signed-off-by: Thomas Lamprecht <t.lamprecht@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 c5dd45d87..1c792edf0 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
@@ -14,7 +14,7 @@ ConditionPathIsDirectory=/sys/module/zfs
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
EnvironmentFile=-@initconfdir@/zfs
-ExecStart=@sbindir@/zpool import -aN -o cachefile=none $ZPOOL_IMPORT_OPTS
+ExecStart=@sbindir@/zpool import -aN -d /dev/disk/by-id -o cachefile=none $ZPOOL_IMPORT_OPTS
[Install]
WantedBy=zfs-import.target
--
2.14.2
+27
View File
@@ -0,0 +1,27 @@
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.
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
---
cmd/zed/zed.d/zed.rc | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/cmd/zed/zed.d/zed.rc b/cmd/zed/zed.d/zed.rc
index bc269b155..e6d4b1703 100644
--- a/cmd/zed/zed.d/zed.rc
+++ b/cmd/zed/zed.d/zed.rc
@@ -41,7 +41,7 @@ ZED_EMAIL_ADDR="root"
##
# Minimum number of seconds between notifications for a similar event.
#
-#ZED_NOTIFY_INTERVAL_SECS=3600
+ZED_NOTIFY_INTERVAL_SECS=3600
##
# Notification verbosity.
+46
View File
@@ -0,0 +1,46 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Antonio Russo <antonio.e.russo@gmail.com>
Date: Fri, 20 Mar 2020 17:28:43 +0100
Subject: [PATCH] dont symlink zed scripts
Of the zedlet scripts shipped by upstream, a subset are enabled by
default, by creating symlinks in /etc/zfs/zed.d. These symlinks are
shipped in the zfs-zed package. dpkg, however, does not support
conffile handling of symlinks, and therefore any changes (removals) to
the symlinks are not preserved on package upgrade.
To address this policy violation, we:
1. During package build, create a list of enabled-by-default zedlets,
instead of creating symlinks.
2. On package removal, identify all enabled-by-default zedlets whose
symlinks do not exist (i.e., were removed by the user). This is done
by creating "whiteout" links to /dev/null in their place).
3. On package installation, create links to enabled-by-default zedlets
UNLESS there is already a file there (i.e., abort if there is a
whiteout link).
4. We also clean up broken symlinks to removed zedlets at package
postinst.
Description: track default symlinks, instead of symlinking
Forwarded: no need
(cherry picked from https://salsa.debian.org/zfsonlinux-team/zfs/-/commit/5cee380324d7)
Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
---
cmd/zed/zed.d/Makefile.am | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/cmd/zed/zed.d/Makefile.am b/cmd/zed/zed.d/Makefile.am
index 812558cf6..f802cf140 100644
--- a/cmd/zed/zed.d/Makefile.am
+++ b/cmd/zed/zed.d/Makefile.am
@@ -48,7 +48,7 @@ zed-install-data-hook:
set -x; for f in $(zedconfdefaults); do \
[ -f "$(DESTDIR)$(zedconfdir)/$${f}" ] ||\
[ -L "$(DESTDIR)$(zedconfdir)/$${f}" ] || \
- $(LN_S) "$(zedexecdir)/$${f}" "$(DESTDIR)$(zedconfdir)"; \
+ echo "$${f}" >> "$(DESTDIR)$(zedexecdir)/DEFAULT-ENABLED" ; \
done
SHELLCHECKSCRIPTS += $(dist_zedconf_DATA) $(dist_zedexec_SCRIPTS) $(nodist_zedexec_SCRIPTS)
@@ -0,0 +1,72 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Stoiko Ivanov <s.ivanov@proxmox.com>
Date: Tue, 15 Sep 2020 19:07:24 +0200
Subject: [PATCH] Add systemd-unit for importing specific pools
The unit can be instantiated with a specific poolname, which will get imported
by scanning /dev/disk/by-id, irrespective of the existence and content of
/etc/zfs/zpool.cache.
the instance name is used unescaped (see systemd.unit(5)), since zpool names
can contain characters which will be escaped by systemd.
Its instances are ordered before the other two "big" import services to avoid
races and spurious (cosmetic!) service failures.
Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
---
etc/Makefile.am | 1 +
etc/systemd/system/50-zfs.preset | 1 +
etc/systemd/system/zfs-import@.service.in | 18 ++++++++++++++++++
3 files changed, 20 insertions(+)
create mode 100644 etc/systemd/system/zfs-import@.service.in
diff --git a/etc/Makefile.am b/etc/Makefile.am
index 7187762d3..de131dc87 100644
--- a/etc/Makefile.am
+++ b/etc/Makefile.am
@@ -54,6 +54,7 @@ dist_systemdpreset_DATA = \
systemdunit_DATA = \
%D%/systemd/system/zfs-import-cache.service \
%D%/systemd/system/zfs-import-scan.service \
+ %D%/systemd/system/zfs-import@.service \
%D%/systemd/system/zfs-import.target \
%D%/systemd/system/zfs-mount.service \
%D%/systemd/system/zfs-scrub-monthly@.timer \
diff --git a/etc/systemd/system/50-zfs.preset b/etc/systemd/system/50-zfs.preset
index e4056a92c..030611419 100644
--- a/etc/systemd/system/50-zfs.preset
+++ b/etc/systemd/system/50-zfs.preset
@@ -1,6 +1,7 @@
# ZFS is enabled by default
enable zfs-import-cache.service
disable zfs-import-scan.service
+enable zfs-import@.service
enable zfs-import.target
enable zfs-mount.service
enable zfs-share.service
diff --git a/etc/systemd/system/zfs-import@.service.in b/etc/systemd/system/zfs-import@.service.in
new file mode 100644
index 000000000..5bd19fb79
--- /dev/null
+++ b/etc/systemd/system/zfs-import@.service.in
@@ -0,0 +1,18 @@
+[Unit]
+Description=Import ZFS pool %i
+Documentation=man:zpool(8)
+DefaultDependencies=no
+After=systemd-udev-settle.service
+After=cryptsetup.target
+After=multipathd.target
+Before=zfs-import.target
+Before=zfs-import-scan.service
+Before=zfs-import-cache.service
+
+[Service]
+Type=oneshot
+RemainAfterExit=yes
+ExecStart=@sbindir@/zpool import -N -d /dev/disk/by-id -o cachefile=none %I
+
+[Install]
+WantedBy=zfs-import.target
@@ -0,0 +1,52 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Stoiko Ivanov <s.ivanov@proxmox.com>
Date: Thu, 4 Feb 2021 19:01:12 +0100
Subject: [PATCH] Patch: move manpage arcstat(1) to arcstat(8).
Originally-By: Mo Zhou <cdluminate@gmail.com>
Originally-By: Antonio Russo <aerusso@aerusso.net>
Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
---
man/Makefile.am | 2 +-
man/{man1/arcstat.1 => man8/arcstat.8} | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
rename man/{man1/arcstat.1 => man8/arcstat.8} (99%)
diff --git a/man/Makefile.am b/man/Makefile.am
index 43bb014dd..a9293468a 100644
--- a/man/Makefile.am
+++ b/man/Makefile.am
@@ -2,7 +2,6 @@ dist_noinst_man_MANS = \
%D%/man1/cstyle.1
dist_man_MANS = \
- %D%/man1/arcstat.1 \
%D%/man1/raidz_test.1 \
%D%/man1/test-runner.1 \
%D%/man1/zhack.1 \
@@ -22,6 +21,7 @@ dist_man_MANS = \
%D%/man7/zpoolconcepts.7 \
%D%/man7/zpoolprops.7 \
\
+ %D%/man8/arcstat.8 \
%D%/man8/fsck.zfs.8 \
%D%/man8/mount.zfs.8 \
%D%/man8/vdev_id.8 \
diff --git a/man/man1/arcstat.1 b/man/man8/arcstat.8
similarity index 99%
rename from man/man1/arcstat.1
rename to man/man8/arcstat.8
index 82358fa68..a8fb55498 100644
--- a/man/man1/arcstat.1
+++ b/man/man8/arcstat.8
@@ -13,7 +13,7 @@
.\" Copyright (c) 2020 by AJ Jordan. All rights reserved.
.\"
.Dd December 23, 2022
-.Dt ARCSTAT 1
+.Dt ARCSTAT 8
.Os
.
.Sh NAME
@@ -0,0 +1,438 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Thomas Lamprecht <t.lamprecht@proxmox.com>
Date: Wed, 10 Nov 2021 09:29:47 +0100
Subject: [PATCH] arc stat/summary: guard access to freshly introduced stats
l2arc MFU/MRU and zfetch past future and stride stats were introduced
in 2.1 and 2.2.4 respectively:
commit 085321621e79a75bea41c2b6511da6ebfbf2ba0a added printing MFU
and MRU stats for 2.1 user space tools, but those keys are not
available in the 2.0 module. That means it may break the arcstat and
arc_summary tools after upgrade to 2.1 (user space), before a reboot
to the new 2.1 ZFS kernel-module happened, due to python raising a
KeyError on the dict access then.
Move those two keys to a .get accessor with `0` as fallback, as it
should be better to show some possible wrong data for new stat-keys
than throwing an exception.
also move l2_mfu_asize l2_mru_asize l2_prefetch_asize
l2_bufc_data_asize l2_bufc_metadata_asize to .get accessor
(these are only present with a cache device in the pool)
guard access to iohits and uncached state introduced in
792a6ee462efc15a7614f27e13f0f8aaa9414a08
guard access to zfetch past future stride stats introduced in
026fe796465e3da7b27d06ef5338634ee6dd30d8
These are present in the current kernel, but lead to an exception, if
running the new user-space with an old kernel module.
Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
---
cmd/arc_summary | 132 ++++++++++++++++++++++++------------------------
cmd/arcstat.in | 48 +++++++++---------
2 files changed, 90 insertions(+), 90 deletions(-)
diff --git a/cmd/arc_summary b/cmd/arc_summary
index 100fb1987..30f5d23e9 100755
--- a/cmd/arc_summary
+++ b/cmd/arc_summary
@@ -551,21 +551,21 @@ def section_arc(kstats_dict):
arc_target_size = arc_stats['c']
arc_max = arc_stats['c_max']
arc_min = arc_stats['c_min']
- meta = arc_stats['meta']
- pd = arc_stats['pd']
- pm = arc_stats['pm']
- anon_data = arc_stats['anon_data']
- anon_metadata = arc_stats['anon_metadata']
- mfu_data = arc_stats['mfu_data']
- mfu_metadata = arc_stats['mfu_metadata']
- mru_data = arc_stats['mru_data']
- mru_metadata = arc_stats['mru_metadata']
- mfug_data = arc_stats['mfu_ghost_data']
- mfug_metadata = arc_stats['mfu_ghost_metadata']
- mrug_data = arc_stats['mru_ghost_data']
- mrug_metadata = arc_stats['mru_ghost_metadata']
- unc_data = arc_stats['uncached_data']
- unc_metadata = arc_stats['uncached_metadata']
+ meta = arc_stats.get('meta', 0)
+ pd = arc_stats.get('pd', 0)
+ pm = arc_stats.get('pm', 0)
+ anon_data = arc_stats.get('anon_data', 0)
+ anon_metadata = arc_stats.get('anon_metadata', 0)
+ mfu_data = arc_stats.get('mfu_data', 0)
+ mfu_metadata = arc_stats.get('mfu_metadata', 0)
+ mru_data = arc_stats.get('mru_data', 0)
+ mru_metadata = arc_stats.get('mru_metadata', 0)
+ mfug_data = arc_stats.get('mfu_ghost_data', 0)
+ mfug_metadata = arc_stats.get('mfu_ghost_metadata', 0)
+ mrug_data = arc_stats.get('mru_ghost_data', 0)
+ mrug_metadata = arc_stats.get('mru_ghost_metadata', 0)
+ unc_data = arc_stats.get('uncached_data', 0)
+ unc_metadata = arc_stats.get('uncached_metadata', 0)
bonus_size = arc_stats['bonus_size']
dnode_limit = arc_stats['arc_dnode_limit']
dnode_size = arc_stats['dnode_size']
@@ -655,13 +655,13 @@ def section_arc(kstats_dict):
prt_i1('L2 cached evictions:', f_bytes(arc_stats['evict_l2_cached']))
prt_i1('L2 eligible evictions:', f_bytes(arc_stats['evict_l2_eligible']))
prt_i2('L2 eligible MFU evictions:',
- f_perc(arc_stats['evict_l2_eligible_mfu'],
+ f_perc(arc_stats.get('evict_l2_eligible_mfu', 0), # 2.0 module compat
arc_stats['evict_l2_eligible']),
- f_bytes(arc_stats['evict_l2_eligible_mfu']))
+ f_bytes(arc_stats.get('evict_l2_eligible_mfu', 0)))
prt_i2('L2 eligible MRU evictions:',
- f_perc(arc_stats['evict_l2_eligible_mru'],
+ f_perc(arc_stats.get('evict_l2_eligible_mru', 0), # 2.0 module compat
arc_stats['evict_l2_eligible']),
- f_bytes(arc_stats['evict_l2_eligible_mru']))
+ f_bytes(arc_stats.get('evict_l2_eligible_mru', 0)))
prt_i1('L2 ineligible evictions:',
f_bytes(arc_stats['evict_l2_ineligible']))
print()
@@ -672,106 +672,106 @@ def section_archits(kstats_dict):
"""
arc_stats = isolate_section('arcstats', kstats_dict)
- all_accesses = int(arc_stats['hits'])+int(arc_stats['iohits'])+\
+ all_accesses = int(arc_stats['hits'])+int(arc_stats.get('iohits', 0))+\
int(arc_stats['misses'])
prt_1('ARC total accesses:', f_hits(all_accesses))
ta_todo = (('Total hits:', arc_stats['hits']),
- ('Total I/O hits:', arc_stats['iohits']),
+ ('Total I/O hits:', arc_stats.get('iohits', 0)),
('Total misses:', arc_stats['misses']))
for title, value in ta_todo:
prt_i2(title, f_perc(value, all_accesses), f_hits(value))
print()
dd_total = int(arc_stats['demand_data_hits']) +\
- int(arc_stats['demand_data_iohits']) +\
+ int(arc_stats.get('demand_data_iohits', 0)) +\
int(arc_stats['demand_data_misses'])
prt_2('ARC demand data accesses:', f_perc(dd_total, all_accesses),
f_hits(dd_total))
dd_todo = (('Demand data hits:', arc_stats['demand_data_hits']),
- ('Demand data I/O hits:', arc_stats['demand_data_iohits']),
+ ('Demand data I/O hits:', arc_stats.get('demand_data_iohits', 0)),
('Demand data misses:', arc_stats['demand_data_misses']))
for title, value in dd_todo:
prt_i2(title, f_perc(value, dd_total), f_hits(value))
print()
dm_total = int(arc_stats['demand_metadata_hits']) +\
- int(arc_stats['demand_metadata_iohits']) +\
+ int(arc_stats.get('demand_metadata_iohits', 0)) +\
int(arc_stats['demand_metadata_misses'])
prt_2('ARC demand metadata accesses:', f_perc(dm_total, all_accesses),
f_hits(dm_total))
dm_todo = (('Demand metadata hits:', arc_stats['demand_metadata_hits']),
('Demand metadata I/O hits:',
- arc_stats['demand_metadata_iohits']),
+ arc_stats.get('demand_metadata_iohits', 0)),
('Demand metadata misses:', arc_stats['demand_metadata_misses']))
for title, value in dm_todo:
prt_i2(title, f_perc(value, dm_total), f_hits(value))
print()
pd_total = int(arc_stats['prefetch_data_hits']) +\
- int(arc_stats['prefetch_data_iohits']) +\
+ int(arc_stats.get('prefetch_data_iohits', 0)) +\
int(arc_stats['prefetch_data_misses'])
prt_2('ARC prefetch data accesses:', f_perc(pd_total, all_accesses),
f_hits(pd_total))
pd_todo = (('Prefetch data hits:', arc_stats['prefetch_data_hits']),
- ('Prefetch data I/O hits:', arc_stats['prefetch_data_iohits']),
+ ('Prefetch data I/O hits:', arc_stats.get('prefetch_data_iohits', 0)),
('Prefetch data misses:', arc_stats['prefetch_data_misses']))
for title, value in pd_todo:
prt_i2(title, f_perc(value, pd_total), f_hits(value))
print()
pm_total = int(arc_stats['prefetch_metadata_hits']) +\
- int(arc_stats['prefetch_metadata_iohits']) +\
+ int(arc_stats.get('prefetch_metadata_iohits', 0)) +\
int(arc_stats['prefetch_metadata_misses'])
prt_2('ARC prefetch metadata accesses:', f_perc(pm_total, all_accesses),
f_hits(pm_total))
pm_todo = (('Prefetch metadata hits:',
arc_stats['prefetch_metadata_hits']),
('Prefetch metadata I/O hits:',
- arc_stats['prefetch_metadata_iohits']),
+ arc_stats.get('prefetch_metadata_iohits', 0)),
('Prefetch metadata misses:',
arc_stats['prefetch_metadata_misses']))
for title, value in pm_todo:
prt_i2(title, f_perc(value, pm_total), f_hits(value))
print()
- all_prefetches = int(arc_stats['predictive_prefetch'])+\
- int(arc_stats['prescient_prefetch'])
+ all_prefetches = int(arc_stats.get('predictive_prefetch', 0))+\
+ int(arc_stats.get('prescient_prefetch', 0))
prt_2('ARC predictive prefetches:',
- f_perc(arc_stats['predictive_prefetch'], all_prefetches),
- f_hits(arc_stats['predictive_prefetch']))
+ f_perc(arc_stats.get('predictive_prefetch', 0), all_prefetches),
+ f_hits(arc_stats.get('predictive_prefetch', 0)))
prt_i2('Demand hits after predictive:',
f_perc(arc_stats['demand_hit_predictive_prefetch'],
- arc_stats['predictive_prefetch']),
+ arc_stats.get('predictive_prefetch', 0)),
f_hits(arc_stats['demand_hit_predictive_prefetch']))
prt_i2('Demand I/O hits after predictive:',
- f_perc(arc_stats['demand_iohit_predictive_prefetch'],
- arc_stats['predictive_prefetch']),
- f_hits(arc_stats['demand_iohit_predictive_prefetch']))
- never = int(arc_stats['predictive_prefetch']) -\
+ f_perc(arc_stats.get('demand_iohit_predictive_prefetch', 0),
+ arc_stats.get('predictive_prefetch', 0)),
+ f_hits(arc_stats.get('demand_iohit_predictive_prefetch', 0)))
+ never = int(arc_stats.get('predictive_prefetch', 0)) -\
int(arc_stats['demand_hit_predictive_prefetch']) -\
- int(arc_stats['demand_iohit_predictive_prefetch'])
+ int(arc_stats.get('demand_iohit_predictive_prefetch', 0))
prt_i2('Never demanded after predictive:',
- f_perc(never, arc_stats['predictive_prefetch']),
+ f_perc(never, arc_stats.get('predictive_prefetch', 0)),
f_hits(never))
print()
prt_2('ARC prescient prefetches:',
- f_perc(arc_stats['prescient_prefetch'], all_prefetches),
- f_hits(arc_stats['prescient_prefetch']))
+ f_perc(arc_stats.get('prescient_prefetch', 0), all_prefetches),
+ f_hits(arc_stats.get('prescient_prefetch', 0)))
prt_i2('Demand hits after prescient:',
f_perc(arc_stats['demand_hit_prescient_prefetch'],
- arc_stats['prescient_prefetch']),
+ arc_stats.get('prescient_prefetch', 0)),
f_hits(arc_stats['demand_hit_prescient_prefetch']))
prt_i2('Demand I/O hits after prescient:',
- f_perc(arc_stats['demand_iohit_prescient_prefetch'],
- arc_stats['prescient_prefetch']),
- f_hits(arc_stats['demand_iohit_prescient_prefetch']))
- never = int(arc_stats['prescient_prefetch'])-\
+ f_perc(arc_stats.get('demand_iohit_prescient_prefetch', 0),
+ arc_stats.get('prescient_prefetch', 0)),
+ f_hits(arc_stats.get('demand_iohit_prescient_prefetch', 0)))
+ never = int(arc_stats.get('prescient_prefetch', 0))-\
int(arc_stats['demand_hit_prescient_prefetch'])-\
- int(arc_stats['demand_iohit_prescient_prefetch'])
+ int(arc_stats.get('demand_iohit_prescient_prefetch', 0))
prt_i2('Never demanded after prescient:',
- f_perc(never, arc_stats['prescient_prefetch']),
+ f_perc(never, arc_stats.get('prescient_prefetch', 0)),
f_hits(never))
print()
@@ -782,7 +782,7 @@ def section_archits(kstats_dict):
arc_stats['mfu_ghost_hits']),
('Most recently used (MRU) ghost:',
arc_stats['mru_ghost_hits']),
- ('Uncached:', arc_stats['uncached_hits']))
+ ('Uncached:', arc_stats.get('uncached_hits', 0)))
for title, value in cl_todo:
prt_i2(title, f_perc(value, all_accesses), f_hits(value))
print()
@@ -794,26 +794,26 @@ def section_dmu(kstats_dict):
zfetch_stats = isolate_section('zfetchstats', kstats_dict)
zfetch_access_total = int(zfetch_stats['hits']) +\
- int(zfetch_stats['future']) + int(zfetch_stats['stride']) +\
- int(zfetch_stats['past']) + int(zfetch_stats['misses'])
+ int(zfetch_stats.get('future', 0)) + int(zfetch_stats.get('stride', 0)) +\
+ int(zfetch_stats.get('past', 0)) + int(zfetch_stats['misses'])
prt_1('DMU predictive prefetcher calls:', f_hits(zfetch_access_total))
prt_i2('Stream hits:',
f_perc(zfetch_stats['hits'], zfetch_access_total),
f_hits(zfetch_stats['hits']))
- future = int(zfetch_stats['future']) + int(zfetch_stats['stride'])
+ future = int(zfetch_stats.get('future', 0)) + int(zfetch_stats.get('stride', 0))
prt_i2('Hits ahead of stream:', f_perc(future, zfetch_access_total),
f_hits(future))
prt_i2('Hits behind stream:',
- f_perc(zfetch_stats['past'], zfetch_access_total),
- f_hits(zfetch_stats['past']))
+ f_perc(zfetch_stats.get('past', 0), zfetch_access_total),
+ f_hits(zfetch_stats.get('past', 0)))
prt_i2('Stream misses:',
f_perc(zfetch_stats['misses'], zfetch_access_total),
f_hits(zfetch_stats['misses']))
prt_i2('Streams limit reached:',
f_perc(zfetch_stats['max_streams'], zfetch_stats['misses']),
f_hits(zfetch_stats['max_streams']))
- prt_i1('Stream strides:', f_hits(zfetch_stats['stride']))
+ prt_i1('Stream strides:', f_hits(zfetch_stats.get('stride', 0)))
prt_i1('Prefetches issued', f_hits(zfetch_stats['io_issued']))
print()
@@ -860,20 +860,20 @@ def section_l2arc(kstats_dict):
f_perc(arc_stats['l2_hdr_size'], arc_stats['l2_size']),
f_bytes(arc_stats['l2_hdr_size']))
prt_i2('MFU allocated size:',
- f_perc(arc_stats['l2_mfu_asize'], arc_stats['l2_asize']),
- f_bytes(arc_stats['l2_mfu_asize']))
+ f_perc(arc_stats.get('l2_mfu_asize', 0), arc_stats['l2_asize']),
+ f_bytes(arc_stats.get('l2_mfu_asize', 0))) # 2.0 module compat
prt_i2('MRU allocated size:',
- f_perc(arc_stats['l2_mru_asize'], arc_stats['l2_asize']),
- f_bytes(arc_stats['l2_mru_asize']))
+ f_perc(arc_stats.get('l2_mru_asize', 0), arc_stats['l2_asize']),
+ f_bytes(arc_stats.get('l2_mru_asize', 0))) # 2.0 module compat
prt_i2('Prefetch allocated size:',
- f_perc(arc_stats['l2_prefetch_asize'], arc_stats['l2_asize']),
- f_bytes(arc_stats['l2_prefetch_asize']))
+ f_perc(arc_stats.get('l2_prefetch_asize', 0), arc_stats['l2_asize']),
+ f_bytes(arc_stats.get('l2_prefetch_asize',0))) # 2.0 module compat
prt_i2('Data (buffer content) allocated size:',
- f_perc(arc_stats['l2_bufc_data_asize'], arc_stats['l2_asize']),
- f_bytes(arc_stats['l2_bufc_data_asize']))
+ f_perc(arc_stats.get('l2_bufc_data_asize', 0), arc_stats['l2_asize']),
+ f_bytes(arc_stats.get('l2_bufc_data_asize', 0))) # 2.0 module compat
prt_i2('Metadata (buffer content) allocated size:',
- f_perc(arc_stats['l2_bufc_metadata_asize'], arc_stats['l2_asize']),
- f_bytes(arc_stats['l2_bufc_metadata_asize']))
+ f_perc(arc_stats.get('l2_bufc_metadata_asize', 0), arc_stats['l2_asize']),
+ f_bytes(arc_stats.get('l2_bufc_metadata_asize', 0))) # 2.0 module compat
print()
prt_1('L2ARC breakdown:', f_hits(l2_access_total))
diff --git a/cmd/arcstat.in b/cmd/arcstat.in
index c4f10a1d6..bf47ec90e 100755
--- a/cmd/arcstat.in
+++ b/cmd/arcstat.in
@@ -510,7 +510,7 @@ def calculate():
v = dict()
v["time"] = time.strftime("%H:%M:%S", time.localtime())
v["hits"] = d["hits"] // sint
- v["iohs"] = d["iohits"] // sint
+ v["iohs"] = d.get("iohits", 0) // sint
v["miss"] = d["misses"] // sint
v["read"] = v["hits"] + v["iohs"] + v["miss"]
v["hit%"] = 100 * v["hits"] // v["read"] if v["read"] > 0 else 0
@@ -518,7 +518,7 @@ def calculate():
v["miss%"] = 100 - v["hit%"] - v["ioh%"] if v["read"] > 0 else 0
v["dhit"] = (d["demand_data_hits"] + d["demand_metadata_hits"]) // sint
- v["dioh"] = (d["demand_data_iohits"] + d["demand_metadata_iohits"]) // sint
+ v["dioh"] = (d.get("demand_data_iohits", 0) + d.get("demand_metadata_iohits", 0)) // sint
v["dmis"] = (d["demand_data_misses"] + d["demand_metadata_misses"]) // sint
v["dread"] = v["dhit"] + v["dioh"] + v["dmis"]
@@ -527,7 +527,7 @@ def calculate():
v["dm%"] = 100 - v["dh%"] - v["di%"] if v["dread"] > 0 else 0
v["ddhit"] = d["demand_data_hits"] // sint
- v["ddioh"] = d["demand_data_iohits"] // sint
+ v["ddioh"] = d.get("demand_data_iohits", 0) // sint
v["ddmis"] = d["demand_data_misses"] // sint
v["ddread"] = v["ddhit"] + v["ddioh"] + v["ddmis"]
@@ -536,7 +536,7 @@ def calculate():
v["ddm%"] = 100 - v["ddh%"] - v["ddi%"] if v["ddread"] > 0 else 0
v["dmhit"] = d["demand_metadata_hits"] // sint
- v["dmioh"] = d["demand_metadata_iohits"] // sint
+ v["dmioh"] = d.get("demand_metadata_iohits", 0) // sint
v["dmmis"] = d["demand_metadata_misses"] // sint
v["dmread"] = v["dmhit"] + v["dmioh"] + v["dmmis"]
@@ -545,8 +545,8 @@ def calculate():
v["dmm%"] = 100 - v["dmh%"] - v["dmi%"] if v["dmread"] > 0 else 0
v["phit"] = (d["prefetch_data_hits"] + d["prefetch_metadata_hits"]) // sint
- v["pioh"] = (d["prefetch_data_iohits"] +
- d["prefetch_metadata_iohits"]) // sint
+ v["pioh"] = (d.get("prefetch_data_iohits", 0) +
+ d.get("prefetch_metadata_iohits", 0)) // sint
v["pmis"] = (d["prefetch_data_misses"] +
d["prefetch_metadata_misses"]) // sint
@@ -556,7 +556,7 @@ def calculate():
v["pm%"] = 100 - v["ph%"] - v["pi%"] if v["pread"] > 0 else 0
v["pdhit"] = d["prefetch_data_hits"] // sint
- v["pdioh"] = d["prefetch_data_iohits"] // sint
+ v["pdioh"] = d.get("prefetch_data_iohits", 0) // sint
v["pdmis"] = d["prefetch_data_misses"] // sint
v["pdread"] = v["pdhit"] + v["pdioh"] + v["pdmis"]
@@ -565,7 +565,7 @@ def calculate():
v["pdm%"] = 100 - v["pdh%"] - v["pdi%"] if v["pdread"] > 0 else 0
v["pmhit"] = d["prefetch_metadata_hits"] // sint
- v["pmioh"] = d["prefetch_metadata_iohits"] // sint
+ v["pmioh"] = d.get("prefetch_metadata_iohits", 0) // sint
v["pmmis"] = d["prefetch_metadata_misses"] // sint
v["pmread"] = v["pmhit"] + v["pmioh"] + v["pmmis"]
@@ -575,8 +575,8 @@ def calculate():
v["mhit"] = (d["prefetch_metadata_hits"] +
d["demand_metadata_hits"]) // sint
- v["mioh"] = (d["prefetch_metadata_iohits"] +
- d["demand_metadata_iohits"]) // sint
+ v["mioh"] = (d.get("prefetch_metadata_iohits", 0) +
+ d.get("demand_metadata_iohits", 0)) // sint
v["mmis"] = (d["prefetch_metadata_misses"] +
d["demand_metadata_misses"]) // sint
@@ -592,24 +592,24 @@ def calculate():
v["mru"] = d["mru_hits"] // sint
v["mrug"] = d["mru_ghost_hits"] // sint
v["mfug"] = d["mfu_ghost_hits"] // sint
- v["unc"] = d["uncached_hits"] // sint
+ v["unc"] = d.get("uncached_hits", 0) // sint
v["eskip"] = d["evict_skip"] // sint
v["el2skip"] = d["evict_l2_skip"] // sint
v["el2cach"] = d["evict_l2_cached"] // sint
v["el2el"] = d["evict_l2_eligible"] // sint
- v["el2mfu"] = d["evict_l2_eligible_mfu"] // sint
- v["el2mru"] = d["evict_l2_eligible_mru"] // sint
+ v["el2mfu"] = d.get("evict_l2_eligible_mfu", 0) // sint
+ v["el2mru"] = d.get("evict_l2_eligible_mru", 0) // sint
v["el2inel"] = d["evict_l2_ineligible"] // sint
v["mtxmis"] = d["mutex_miss"] // sint
- v["ztotal"] = (d["zfetch_hits"] + d["zfetch_future"] + d["zfetch_stride"] +
- d["zfetch_past"] + d["zfetch_misses"]) // sint
+ v["ztotal"] = (d["zfetch_hits"] + d.get("zfetch_future", 0) + d.get("zfetch_stride", 0) +
+ d.get("zfetch_past", 0) + d["zfetch_misses"]) // sint
v["zhits"] = d["zfetch_hits"] // sint
- v["zahead"] = (d["zfetch_future"] + d["zfetch_stride"]) // sint
- v["zpast"] = d["zfetch_past"] // sint
+ v["zahead"] = (d.get("zfetch_future", 0) + d.get("zfetch_stride", 0)) // sint
+ v["zpast"] = d.get("zfetch_past", 0) // sint
v["zmisses"] = d["zfetch_misses"] // sint
v["zmax"] = d["zfetch_max_streams"] // sint
- v["zfuture"] = d["zfetch_future"] // sint
- v["zstride"] = d["zfetch_stride"] // sint
+ v["zfuture"] = d.get("zfetch_future", 0) // sint
+ v["zstride"] = d.get("zfetch_stride", 0) // sint
v["zissued"] = d["zfetch_io_issued"] // sint
v["zactive"] = d["zfetch_io_active"] // sint
@@ -624,11 +624,11 @@ def calculate():
v["l2size"] = cur["l2_size"]
v["l2bytes"] = d["l2_read_bytes"] // sint
- v["l2pref"] = cur["l2_prefetch_asize"]
- v["l2mfu"] = cur["l2_mfu_asize"]
- v["l2mru"] = cur["l2_mru_asize"]
- v["l2data"] = cur["l2_bufc_data_asize"]
- v["l2meta"] = cur["l2_bufc_metadata_asize"]
+ v["l2pref"] = cur.get("l2_prefetch_asize", 0)
+ v["l2mfu"] = cur.get("l2_mfu_asize", 0)
+ v["l2mru"] = cur.get("l2_mru_asize", 0)
+ v["l2data"] = cur.get("l2_bufc_data_asize", 0)
+ v["l2meta"] = cur.get("l2_bufc_metadata_asize", 0)
v["l2pref%"] = 100 * v["l2pref"] // v["l2asize"]
v["l2mfu%"] = 100 * v["l2mfu"] // v["l2asize"]
v["l2mru%"] = 100 * v["l2mru"] // v["l2asize"]
@@ -0,0 +1,76 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: siv0 <github@nomore.at>
Date: Tue, 31 Oct 2023 21:57:54 +0100
Subject: [PATCH] Fix nfs_truncate_shares without /etc/exports.d
Calling nfs_reset_shares on Linux prints a warning:
`failed to lock /etc/exports.d/zfs.exports.lock: No such file or
directory`
when /etc/exports.d does not exist. The directory gets created, when a
filesystem is actually exported through nfs_toggle_share and
nfs_init_share. The truncation of /etc/exports.d/zfs.exports happens
unconditionally when calling `zfs mount -a` (via zfs_do_mount and
share_mount in `cmd/zfs/zfs_main.c`).
Fixing the issue only in the Linux part, since the exports file on
freebsd is in `/etc/zfs/`, which seems present on 2 FreeBSD systems I
have access to (through `/etc/zfs/compatibility.d/`), while a Debian
box does not have the directory even if `/usr/sbin/exportfs` is
present through the `nfs-kernel-server` package.
The code for exports_available is copied from nfs_available above.
Fixes: ede037cda73675f42b1452187e8dd3438fafc220
("Make zfs-share service resilient to stale exports")
Reviewed-by: Brian Atkinson <batkinson@lanl.gov>
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
Closes #15369
Closes #15468
(cherry picked from commit 41e55b476bcfc90f1ad81c02c5375367fdace9e9)
Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
---
lib/libshare/os/linux/nfs.c | 18 ++++++++++++++++++
1 file changed, 18 insertions(+)
diff --git a/lib/libshare/os/linux/nfs.c b/lib/libshare/os/linux/nfs.c
index 004946b0c..3dce81840 100644
--- a/lib/libshare/os/linux/nfs.c
+++ b/lib/libshare/os/linux/nfs.c
@@ -47,6 +47,7 @@
static boolean_t nfs_available(void);
+static boolean_t exports_available(void);
typedef int (*nfs_shareopt_callback_t)(const char *opt, const char *value,
void *cookie);
@@ -539,6 +540,8 @@ nfs_commit_shares(void)
static void
nfs_truncate_shares(void)
{
+ if (!exports_available())
+ return;
nfs_reset_shares(ZFS_EXPORTS_LOCK, ZFS_EXPORTS_FILE);
}
@@ -566,3 +569,18 @@ nfs_available(void)
return (avail == 1);
}
+
+static boolean_t
+exports_available(void)
+{
+ static int avail;
+
+ if (!avail) {
+ if (access(ZFS_EXPORTS_DIR, F_OK) != 0)
+ avail = -1;
+ else
+ avail = 1;
+ }
+
+ return (avail == 1);
+}
@@ -0,0 +1,66 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Thomas Lamprecht <t.lamprecht@proxmox.com>
Date: Sun, 12 Nov 2023 15:52:25 +0100
Subject: [PATCH] zpool status: tighten bounds for noalloc stat availabillity
When running zfs 2.2.0 userspace utilities with a kernel that still
has 2.1.13 modules zpool status adds `(non-allocating)` next to the
disk name of a single-disk pool.
The reason for this seems to be that the patch adding the `vs_pspace` field was
backported, but the one adding `vs_noalloc` was not.
Itself that is not a problem, but in 2.2 `noalloc` was added before `psspace`,
so the struct layout between 2.1.13 and 2.2.0 do NOT match anymore...
I.e., the struct looks like the following at the end for ZFS 2.1.x:
```
typedef struct vdev_stat {
hrtime_t vs_timestamp; /* time since vdev load */
// snip
uint64_t vs_logical_ashift; /* vdev_logical_ashift */
uint64_t vs_physical_ashift; /* vdev_physical_ashift */
uint64_t vs_pspace; /* physical capacity */
} vdev_stat_t;
```
And like the following on ZFS 2.2.x:
```
typedef struct vdev_stat {
hrtime_t vs_timestamp; /* time since vdev load */
// snip
uint64_t vs_logical_ashift; /* vdev_logical_ashift */
uint64_t vs_physical_ashift; /* vdev_physical_ashift */
uint64_t vs_noalloc; /* allocations halted? */
uint64_t vs_pspace; /* physical capacity */
} vdev_stat_t;
```
Resulting in 2.2.x user-space tooling interpreting the `vs_pspace` field from
the 2.1.x kernel module as `vs_noalloc` field.
For now, work-around that discrepancy by coupling the availability of
the vs_noalloc field with the one of the vs_pspace one, as when both
are returned from the module we can be sure that our struct layout
matches again.
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
---
cmd/zpool/zpool_main.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/cmd/zpool/zpool_main.c b/cmd/zpool/zpool_main.c
index ed0b8d7a1..f3acc49d0 100644
--- a/cmd/zpool/zpool_main.c
+++ b/cmd/zpool/zpool_main.c
@@ -2663,7 +2663,8 @@ print_status_config(zpool_handle_t *zhp, status_cbdata_t *cb, const char *name,
if (vs->vs_scan_removing != 0) {
(void) printf(gettext(" (removing)"));
- } else if (VDEV_STAT_VALID(vs_noalloc, vsc) && vs->vs_noalloc != 0) {
+ } else if (VDEV_STAT_VALID(vs_pspace, vsc)
+ && VDEV_STAT_VALID(vs_noalloc, vsc) && vs->vs_noalloc != 0) {
(void) printf(gettext(" (non-allocating)"));
}
+11
View File
@@ -0,0 +1,11 @@
0001-Check-for-META-and-DCH-consistency-in-autoconf.patch
0002-always-load-ZFS-module-on-boot.patch
0003-Fix-the-path-to-the-zed-binary-on-the-systemd-unit.patch
0004-import-with-d-dev-disk-by-id-in-scan-service.patch
0005-Enable-zed-emails.patch
0006-dont-symlink-zed-scripts.patch
0007-Add-systemd-unit-for-importing-specific-pools.patch
0008-Patch-move-manpage-arcstat-1-to-arcstat-8.patch
0009-arc-stat-summary-guard-access-to-freshly-introduced-.patch
0010-Fix-nfs_truncate_shares-without-etc-exports.d.patch
0011-zpool-status-tighten-bounds-for-noalloc-stat-availab.patch
+1
View File
@@ -0,0 +1 @@
usr/lib/python3*
Vendored Executable
+119
View File
@@ -0,0 +1,119 @@
#!/usr/bin/make -f
include /usr/share/dpkg/default.mk
VERSION := $(DEB_VERSION_UPSTREAM)
REVISION := $(shell echo $(DEB_VERSION) | cut -d- -f2)
SPHINX_BUILD = $(shell dpkg -L python3-sphinx | grep -m 1 "/sphinx-build$$")
export DEB_BUILD_MAINT_OPTIONS = hardening=+all
%:
dh $@ --with autoreconf,python3,sphinxdoc
adapt_meta_file:
@# Embed the downstream version in the module.
@sed \
-e 's/^Version:.*/Version: $(VERSION)/' \
-e 's/^Release:.*/Release: $(REVISION)/' \
-i.orig META
override_dh_autoreconf: adapt_meta_file
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/"$(DEB_HOST_MULTIARCH)" \
--with-udevdir=/lib/udev \
--with-zfsexecdir=/usr/lib/zfs-linux \
--enable-systemd \
--enable-pyzfs \
--with-python=python3 \
--with-pammoduledir='/lib/$(DEB_HOST_MULTIARCH)/security' \
--with-pkgconfigdir='/usr/lib/$(DEB_HOST_MULTIARCH)/pkgconfig' \
--with-systemdunitdir=/lib/systemd/system \
--with-systemdpresetdir=/lib/systemd/system-preset \
--with-systemdgeneratordir=/lib/systemd/system-generators \
--with-config=user
for i in $(wildcard $(CURDIR)/debian/*.install.in) ; do \
basename "$$i" | grep _KVERS_ && continue ; \
sed 's/@DEB_HOST_MULTIARCH@/$(DEB_HOST_MULTIARCH)/g' "$$i" > "$${i%%.in}" ; \
done
override_dh_auto_test:
override_dh_auto_test:
ifeq (amd64,$(DEB_HOST_ARCH))
# Upstream provides an ABI guarantee that we validate here
-$(MAKE) checkabi
endif
# 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'
# 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' '$(CURDIR)/debian/tmp/usr/sbin/arc_summary'
mv '$(CURDIR)/debian/tmp/usr/bin/arcstat' '$(CURDIR)/debian/tmp/usr/sbin/arcstat'
mv '$(CURDIR)/debian/tmp/usr/bin/dbufstat' '$(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/$(DEB_HOST_MULTIARCH)
for i in `ls $(CURDIR)/debian/tmp/lib/$(DEB_HOST_MULTIARCH)/*.so`; do \
ln -s /lib/$(DEB_HOST_MULTIARCH)/`readlink $${i}` $(CURDIR)/debian/tmp/usr/lib/$(DEB_HOST_MULTIARCH)/`basename $${i}`; \
rm $${i}; \
done
chmod a-x '$(CURDIR)/debian/tmp/etc/zfs/zfs-functions'
chmod a-x '$(CURDIR)/debian/tmp/etc/default/zfs'
override_dh_python3:
dh_python3 -p python3-pyzfs
override_dh_makeshlibs:
dh_makeshlibs -a -V
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 debian/tmp/lib -name '*.la' -delete
dh_install
override_dh_missing:
dh_missing --fail-missing
override_dh_installsystemd:
# these to lines prevent the restarting of all systemd services, except
# zfs-zed - they should not be restarted (importing, mounting, creating
# links in /dev, and can cause erros in the log
# (upon major.minor change)
dh_installsystemd --no-stop-on-upgrade -X zfs-zed.service
dh_installsystemd --name zfs-zed
override_dh_installdocs:
dh_installdocs
ifeq (,$(findstring nodoc, $(DEB_BUILD_OPTIONS)))
http_proxy='127.0.0.1:9' $(SPHINX_BUILD) -N -bhtml "$(CURDIR)/contrib/pyzfs/docs/source/" debian/pyzfs-doc/usr/share/doc/pyzfs-doc/html/
endif
# ------------
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
+67
View File
@@ -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
+18
View File
@@ -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
+14
View File
@@ -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
+45
View File
@@ -0,0 +1,45 @@
#!/bin/sh -eu
# directly exit successfully when zfs module is not loaded
if ! [ -d /sys/module/zfs ]; then
exit 0
fi
# [auto] / enable / disable
PROPERTY_NAME="org.debian:periodic-scrub"
get_property () {
# Detect the ${PROPERTY_NAME} property on a given pool.
# We are abusing user-defined properties on the root dataset,
# since they're not available on pools https://github.com/openzfs/zfs/pull/11680
# TODO: use zpool user-defined property when such feature is available.
pool="$1"
zfs get -H -o value "${PROPERTY_NAME}" "${pool}" 2>/dev/null || return 1
}
scrub_if_not_scrub_in_progress () {
pool="$1"
if ! zpool status "${pool}" | grep -q "scrub in progress"; then
# Ignore errors and continue with scrubbing other pools.
zpool scrub "${pool}" || true
fi
}
# Scrub all healthy pools that are not already scrubbing as per their configs.
zpool list -H -o health,name 2>&1 | \
awk -F'\t' '$1 == "ONLINE" {print $2}' | \
while read pool
do
# read user-defined config
ret=$(get_property "${pool}")
if [ $? -ne 0 ] || [ "disable" = "${ret}" ]; then
:
elif [ "-" = "${ret}" ] || [ "auto" = "${ret}" ] || [ "enable" = "${ret}" ]; then
scrub_if_not_scrub_in_progress "${pool}"
else
cat > /dev/stderr <<EOF
$0: [WARNING] illegal value "${ret}" for property "${PROPERTY_NAME}" of ZFS dataset "${pool}".
$0: Acceptable choices for this property are: auto, enable, disable. The default is auto.
EOF
fi
done
+69
View File
@@ -0,0 +1,69 @@
#!/bin/sh -u
# directly exit successfully when zfs module is not loaded
if ! [ -d /sys/module/zfs ]; then
exit 0
fi
# [auto] / enable / disable
PROPERTY_NAME="org.debian:periodic-trim"
get_property () {
# Detect the ${PROPERTY_NAME} property on a given pool.
# We are abusing user-defined properties on the root dataset,
# since they're not available on pools https://github.com/openzfs/zfs/pull/11680
# TODO: use zpool user-defined property when such feature is available.
pool="$1"
zfs get -H -o value "${PROPERTY_NAME}" "${pool}" 2>/dev/null
}
trim_if_not_already_trimming () {
pool="$1"
if ! zpool status "${pool}" | grep -q "trimming"; then
# This will error on HDD-only pools: doesn't matter
zpool trim "${pool}"
fi
}
# Walk up the kernel parent names:
# this will catch devices from LVM &a.
get_transp () {
dev="$1"
while pd="$(lsblk -dnr -o PKNAME "$dev")"; do
if [ -z "$pd" ]; then
break
else
dev="/dev/$pd"
fi
done
lsblk -dnr -o TRAN "$dev"
}
pool_is_nvme_only () {
pool="$1"
# get a list of devices attached to the specified pool
zpool list -vHP "${pool}" | \
awk -F'\t' '$2 ~ "^/dev/" {print $2}' | \
while read -r dev
do
[ "$(get_transp "$dev")" = "nvme" ] || return
done
}
# TRIM all healthy pools that are not already trimming as per their configs.
zpool list -H -o health,name 2>&1 | \
awk -F'\t' '$1 == "ONLINE" {print $2}' | \
while read -r pool
do
# read user-defined config
ret=$(get_property "${pool}") || continue
case "${ret}" in
disable);;
enable) trim_if_not_already_trimming "${pool}" ;;
-|auto) if pool_is_nvme_only "${pool}"; then trim_if_not_already_trimming "${pool}"; fi ;;
*) cat > /dev/stderr <<EOF
$0: [WARNING] illegal value "${ret}" for property "${PROPERTY_NAME}" of ZFS dataset "${pool}".
$0: Acceptable choices for this property are: auto, enable, disable. The default is auto.
EOF
esac
done
+2
View File
@@ -0,0 +1,2 @@
version=3
https://zfsonlinux.org/ .*zfs-([\d\.]+)\.tar\.gz$
+2
View File
@@ -0,0 +1,2 @@
usr/lib/dracut
usr/share/man/man7/dracut.zfs.7
+2
View File
@@ -0,0 +1,2 @@
../tree/zfs-initramfs/* /
usr/share/initramfs-tools/*
+1
View File
@@ -0,0 +1 @@
executable-not-elf-or-script *usr/share/initramfs-tools/scripts/zfs*
+15
View File
@@ -0,0 +1,15 @@
sbin/zinject
sbin/ztest
usr/bin/raidz_test
usr/share/man/man1/raidz_test.1
usr/share/man/man1/test-runner.1
usr/share/man/man1/ztest.1
usr/share/man/man8/zinject.8
usr/share/zfs/common.sh
usr/share/zfs/runfiles/
usr/share/zfs/test-runner
usr/share/zfs/zfs-tests.sh
usr/share/zfs/zfs-tests/
usr/share/zfs/zfs.sh
usr/share/zfs/zimport.sh
usr/share/zfs/zloop.sh
+10
View File
@@ -0,0 +1,10 @@
arch-dependent-file-in-usr-share
command-in-sbin-has-manpage-in-incorrect-section
arch-dep-package-has-big-usr-share
manpage-without-executable
national-encoding *usr/share/zfs/zfs-tests/tests/functional/channel_program/lua_core/tst.lib_table.lua*
executable-not-elf-or-script *usr/share/zfs/zfs-tests/tests/functional/cli_root/*
package-contains-documentation-outside-usr-share-doc *usr/share/zfs/zfs-tests/*
script-not-executable [usr/share/zfs/common.sh]
script-not-executable [usr/share/zfs/zfs-tests/include/default.cfg]
script-not-executable [usr/share/zfs/zfs-tests/tests/functional/*]
+5
View File
@@ -0,0 +1,5 @@
etc/zfs/zed.d/*
lib/systemd/system/zfs-zed.service
usr/lib/zfs-linux/zed.d/*
usr/sbin/zed
usr/share/man/man8/zed.8
+4
View File
@@ -0,0 +1,4 @@
script-not-executable
# https://github.com/zfsonlinux/zfs/issues/8064
systemd-service-file-refers-to-unusual-wantedby-target
+20
View File
@@ -0,0 +1,20 @@
#!/bin/sh
set -e
zedd="/usr/lib/zfs-linux/zed.d"
etcd="/etc/zfs/zed.d"
# enable all default zedlets that are not overridden
while read -r file ; do
etcfile="${etcd}/${file}"
[ -e "${etcfile}" ] && continue
ln -sfT "${zedd}/${file}" "${etcfile}"
done < "${zedd}/DEFAULT-ENABLED"
# remove the overrides created in prerm
find "${etcd}" -maxdepth 1 -lname '/dev/null' -delete
# remove any dangling symlinks to old zedlets
find "${etcd}" -maxdepth 1 -lname "${zedd}/*" -xtype l -delete
#DEBHELPER#
+17
View File
@@ -0,0 +1,17 @@
#!/bin/sh
set -e
zedd="/usr/lib/zfs-linux/zed.d"
etcd="/etc/zfs/zed.d"
if [ "$1" = "purge" ] && [ -d "$etcd" ] ; then
# remove the overrides created in prerm
find "${etcd}" -maxdepth 1 -lname '/dev/null' -delete
# remove any dangling symlinks to old zedlets
find "${etcd}" -maxdepth 1 -lname "${zedd}/*" -xtype l -delete
# clean up any empty directories
( rmdir "$etcd" && rmdir "/etc/zfs" ) || true
fi
#DEBHELPER#
+16
View File
@@ -0,0 +1,16 @@
#!/bin/sh
set -e
zedd="/usr/lib/zfs-linux/zed.d"
etcd="/etc/zfs/zed.d"
if [ "$1" != "failed-upgrade" ] && [ -d "${etcd}" ] && [ -d "${zedd}" ] ; then
while read -r file ; do
etcfile="${etcd}/${file}"
( [ -L "${etcfile}" ] || [ -e "${etcfile}" ] ) && continue
ln -sT /dev/null "${etcfile}"
done < "${zedd}/DEFAULT-ENABLED"
fi
#DEBHELPER#
+7
View File
@@ -0,0 +1,7 @@
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
# TRIM the first Sunday of every month.
24 0 1-7 * * root if [ $(date +\%w) -eq 0 ] && [ -x /usr/lib/zfs-linux/trim ]; then /usr/lib/zfs-linux/trim; fi
# Scrub the second Sunday of every month.
24 0 8-14 * * root if [ $(date +\%w) -eq 0 ] && [ -x /usr/lib/zfs-linux/scrub ]; then /usr/lib/zfs-linux/scrub; fi
+2
View File
@@ -0,0 +1,2 @@
COPYRIGHT
LICENSE
+5
View File
@@ -0,0 +1,5 @@
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
+137
View File
@@ -0,0 +1,137 @@
../tree/zfsutils-linux/* /
etc/default/zfs
etc/zfs/zfs-functions
etc/zfs/zpool.d/
lib/systemd/system-preset/
lib/systemd/system/zfs-import-cache.service
lib/systemd/system/zfs-import-scan.service
lib/systemd/system/zfs-import@.service
lib/systemd/system/zfs-import.target
lib/systemd/system/zfs-import.service
lib/systemd/system/zfs-load-key.service
lib/systemd/system/zfs-mount.service
lib/systemd/system/zfs-scrub-monthly@.timer
lib/systemd/system/zfs-scrub-weekly@.timer
lib/systemd/system/zfs-scrub@.service
lib/systemd/system/zfs-share.service
lib/systemd/system/zfs-trim-monthly@.timer
lib/systemd/system/zfs-trim-weekly@.timer
lib/systemd/system/zfs-trim@.service
lib/systemd/system/zfs-volume-wait.service
lib/systemd/system/zfs-volumes.target
lib/systemd/system/zfs.target
lib/systemd/system-generators/zfs-mount-generator
lib/udev/
sbin/fsck.zfs
sbin/mount.zfs
sbin/zdb
sbin/zfs
sbin/zfs_ids_to_path
sbin/zgenhostid
sbin/zhack
sbin/zpool
sbin/zstream
sbin/zstreamdump
usr/bin/zvol_wait
usr/bin/zilstat
usr/lib/modules-load.d/ lib/
usr/lib/zfs-linux/zfs_prepare_disk
usr/lib/zfs-linux/zpool.d/
usr/lib/zfs-linux/zpool_influxdb
usr/sbin/arc_summary
usr/sbin/arcstat
usr/sbin/dbufstat
usr/share/bash-completion/completions
usr/share/man/man8/arcstat.8
usr/share/man/man1/zhack.1
usr/share/man/man1/zvol_wait.1
usr/share/man/man4/zfs.4
usr/share/man/man4/spl.4
usr/share/man/man5/
usr/share/man/man7/vdevprops.7
usr/share/man/man7/zfsconcepts.7
usr/share/man/man7/zfsprops.7
usr/share/man/man7/zpoolconcepts.7
usr/share/man/man7/zpoolprops.7
usr/share/man/man7/zpool-features.7
usr/share/man/man8/fsck.zfs.8
usr/share/man/man8/mount.zfs.8
usr/share/man/man8/vdev_id.8
usr/share/man/man8/zdb.8
usr/share/man/man8/zfs-allow.8
usr/share/man/man8/zfs-bookmark.8
usr/share/man/man8/zfs-change-key.8
usr/share/man/man8/zfs-clone.8
usr/share/man/man8/zfs-create.8
usr/share/man/man8/zfs-destroy.8
usr/share/man/man8/zfs-diff.8
usr/share/man/man8/zfs-get.8
usr/share/man/man8/zfs-groupspace.8
usr/share/man/man8/zfs-hold.8
usr/share/man/man8/zfs-inherit.8
usr/share/man/man8/zfs-list.8
usr/share/man/man8/zfs-load-key.8
usr/share/man/man8/zfs-mount-generator.8
usr/share/man/man8/zfs-mount.8
usr/share/man/man8/zfs_prepare_disk.8
usr/share/man/man8/zfs-program.8
usr/share/man/man8/zfs-project.8
usr/share/man/man8/zfs-projectspace.8
usr/share/man/man8/zfs-promote.8
usr/share/man/man8/zfs-receive.8
usr/share/man/man8/zfs-recv.8
usr/share/man/man8/zfs-redact.8
usr/share/man/man8/zfs-release.8
usr/share/man/man8/zfs-rename.8
usr/share/man/man8/zfs-rollback.8
usr/share/man/man8/zfs-send.8
usr/share/man/man8/zfs-set.8
usr/share/man/man8/zfs-share.8
usr/share/man/man8/zfs-snapshot.8
usr/share/man/man8/zfs-unallow.8
usr/share/man/man8/zfs-unload-key.8
usr/share/man/man8/zfs-unmount.8
usr/share/man/man8/zfs-unzone.8
usr/share/man/man8/zfs-upgrade.8
usr/share/man/man8/zfs-userspace.8
usr/share/man/man8/zfs-wait.8
usr/share/man/man8/zfs.8
usr/share/man/man8/zfs_ids_to_path.8
usr/share/man/man8/zgenhostid.8
usr/share/man/man8/zpool-add.8
usr/share/man/man8/zpool-attach.8
usr/share/man/man8/zpool-checkpoint.8
usr/share/man/man8/zpool-clear.8
usr/share/man/man8/zpool-create.8
usr/share/man/man8/zpool-destroy.8
usr/share/man/man8/zpool-detach.8
usr/share/man/man8/zpool-events.8
usr/share/man/man8/zpool-export.8
usr/share/man/man8/zpool-get.8
usr/share/man/man8/zpool-history.8
usr/share/man/man8/zpool-import.8
usr/share/man/man8/zpool_influxdb.8
usr/share/man/man8/zpool-initialize.8
usr/share/man/man8/zpool-iostat.8
usr/share/man/man8/zpool-labelclear.8
usr/share/man/man8/zpool-list.8
usr/share/man/man8/zpool-offline.8
usr/share/man/man8/zpool-online.8
usr/share/man/man8/zpool-reguid.8
usr/share/man/man8/zpool-remove.8
usr/share/man/man8/zpool-reopen.8
usr/share/man/man8/zpool-replace.8
usr/share/man/man8/zpool-resilver.8
usr/share/man/man8/zpool-scrub.8
usr/share/man/man8/zpool-set.8
usr/share/man/man8/zpool-split.8
usr/share/man/man8/zpool-status.8
usr/share/man/man8/zpool-sync.8
usr/share/man/man8/zpool-trim.8
usr/share/man/man8/zpool-upgrade.8
usr/share/man/man8/zpool-wait.8
usr/share/man/man8/zfs-zone.8
usr/share/man/man8/zpool.8
usr/share/man/man8/zstream.8
usr/share/man/man8/zstreamdump.8
usr/share/zfs/compatibility.d/
+3
View File
@@ -0,0 +1,3 @@
sbin/zfs bin/zfs
sbin/zpool bin/zpool
usr/lib/zfs-linux/zpool_influxdb bin/zpool_influxdb
+13
View File
@@ -0,0 +1,13 @@
spare-manual-page
systemd-service-file-refers-to-unusual-wantedby-target
binary-without-manpage *usr/sbin/dbufstat*
binary-without-manpage *usr/sbin/arc_summary*
manpage-has-errors-from-man
appstream-metadata-missing-modalias-provide
command-in-sbin-has-manpage-in-incorrect-section
package-supports-alternative-init-but-no-init.d-script *lib/systemd/system/zfs-import-cache.service*
package-supports-alternative-init-but-no-init.d-script *lib/systemd/system/zfs-import-scan.service*
spelling-error-in-manpage
package-supports-alternative-init-but-no-init.d-script *lib/systemd/system/zfs-volume-wait.service*
systemd-service-file-missing-documentation-key *lib/systemd/system/zfs-volume-wait.service*
extra-license-file *usr/share/doc/zfsutils-linux/LICENSE.gz*
+19
View File
@@ -0,0 +1,19 @@
#!/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 only way of having a stable hostid is to define it in /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
# a new (random) value is generated with zgenhostid (8) and stored in
# /etc/hostid
if [ ! -f /etc/hostid ] || [ "$(stat -c %s /etc/hostid)" -lt 4 ] ; then
zgenhostid
fi
#DEBHELPER#
-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
Submodule
+1
Submodule upstream added at 2566592045
-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

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