168 Commits

Author SHA1 Message Date
Thomas Lamprecht 8748101cc1 buildsys: fix DEBS variable name
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
(cherry picked from commit b577f030c4)
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2022-01-12 19:39:12 +01:00
Thomas Lamprecht ff279e6b9b bump version to 2.0.7-pve1
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2022-01-12 18:48:41 +01:00
Aron Xu 9b036161c8 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-12 18:46:00 +01:00
Stoiko Ivanov 407d5004a2 update submodule and patches to ZFS 2.0.7
Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
2022-01-12 18:46:00 +01:00
Thomas Lamprecht b7ce537d24 bump version to 2.0.6-pve1~bpo10+1
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2021-09-28 09:19:31 +02:00
Thomas Lamprecht 6eb925bd8a drop already applied patches
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2021-09-28 09:18:24 +02:00
Thomas Lamprecht a542d21db8 update submodule to zfs-2.0.6
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2021-09-28 09:16:51 +02:00
Thomas Lamprecht 19953df19b cherry-pick "Revert Consolidate arc_buf allocation checks"
see https://github.com/openzfs/zfs/issues/11531

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2021-09-08 16:20:54 +02:00
Thomas Lamprecht 337bdb0b13 bump version to 2.0.5-pve1~bpo10+1
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2021-07-21 18:12:55 +02:00
Thomas Lamprecht bc8bb69f8c buildsys: move upload target back to buster for oldstable backport
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2021-07-21 17:57:48 +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
135 changed files with 4632 additions and 18677 deletions
+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
+53 -50
View File
@@ -1,37 +1,46 @@
RELEASE=5.1
# source form https://github.com/zfsonlinux/
ZFSVER=0.7.7
ZFSPKGREL=pve2~bpo9
SPLPKGREL=pve1~bpo9
ZFSPKGVER=${ZFSVER}-${ZFSPKGREL}
SPLPKGVER=${ZFSVER}-${SPLPKGREL}
ZFSPKG=debian
ZFSVER != dpkg-parsechangelog -l ${ZFSPKG}/changelog -Sversion | cut -d- -f1
ZFSPKGVER != dpkg-parsechangelog -l ${ZFSPKG}/changelog -Sversion
ZFSDIR=zfs-linux_${ZFSVER}
ZFSSRC=upstream
SPLDIR=spl-build
SPLSRC=spl-debian
ZFSDIR=zfs-build
ZFSSRC=zfs-debian
ZFS_DEB1= libnvpair3linux_${ZFSPKGVER}_amd64.deb
SPL_DEBS= \
spl_${SPLPKGVER}_amd64.deb
ZFS_DEB_BINARY = \
libpam-zfs_${ZFSPKGVER}_amd64.deb \
libuutil3linux_${ZFSPKGVER}_amd64.deb \
libzfs4linux_${ZFSPKGVER}_amd64.deb \
libzfsbootenv1linux_${ZFSPKGVER}_amd64.deb \
libzpool4linux_${ZFSPKGVER}_amd64.deb \
zfs-test_${ZFSPKGVER}_amd64.deb \
zfsutils-linux_${ZFSPKGVER}_amd64.deb \
zfs-zed_${ZFSPKGVER}_amd64.deb
ZFS_DEBS= \
libnvpair1linux_${ZFSPKGVER}_amd64.deb \
libuutil1linux_${ZFSPKGVER}_amd64.deb \
libzfs2linux_${ZFSPKGVER}_amd64.deb \
ZFS_DBG_DEBS = $(patsubst %_${ZFSPKGVER}_amd64.deb, %-dbgsym_${ZFSPKGVER}_amd64.deb, ${ZFS_DEB1} ${ZFS_DEB_BINARY})
ZFS_DEB2= ${ZFS_DEB_BINARY} \
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
python3-pyzfs_${ZFSPKGVER}_amd64.deb \
pyzfs-doc_${ZFSPKGVER}_all.deb \
spl_${ZFSPKGVER}_all.deb \
zfs-initramfs_${ZFSPKGVER}_all.deb
DEBS= ${ZFS_DEB1} ${ZFS_DEB2} ${ZFS_DBG_DEBS}
DEBS=${SPL_DEBS} ${ZFS_DEBS}
ZFS_DSC = zfs-linux_${ZFSPKGVER}.dsc
all: deb
.PHONY: deb
deb: ${DEBS}
.PHONY: dsc
dsc: ${ZFS_DSC}
# called from pve-kernel's Makefile to get patched sources
.PHONY: kernel
kernel: dsc
dpkg-source -x ${ZFS_DSC} ../pkg-zfs
${MAKE} -C ../pkg-zfs -f debian/rules adapt_meta_file
.PHONY: dinstall
dinstall: ${DEBS}
@@ -39,41 +48,35 @@ dinstall: ${DEBS}
.PHONY: submodule
submodule:
test -f "${ZFSSRC}/debian/changelog" || git submodule update --init
test -f "${SPLSRC}/debian/changelog" || 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
test -f "${ZFSSRC}/README.md" || git submodule update --init
${ZFSSRC}/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
zfs: ${DEBS}
${ZFS_DEB2}: ${ZFS_DEB1}
${ZFS_DEB1}: ${ZFSDIR}
cd ${ZFSDIR}; dpkg-buildpackage -b -uc -us
lintian ${DEBS}
${ZFS_DSC}: ${ZFSDIR}
tar czf zfs-linux_${ZFSVER}.orig.tar.gz ${ZFSDIR}
cd ${ZFSDIR}; dpkg-buildpackage -S -uc -us -d
lintian $@
${ZFSDIR}: ${ZFSSRC}/README.md ${ZFSSRC} ${ZFSPKG}
rm -rf ${ZFSDIR} ${ZFSDIR}.tmp
cp -a ${ZFSSRC} ${ZFSDIR}.tmp
cp -a ${ZFSPKG} ${ZFSDIR}.tmp/debian
mv ${ZFSDIR}.tmp ${ZFSDIR}
.PHONY: clean
clean:
rm -rf *~ *.deb *.changes *.buildinfo ${ZFSDIR} ${SPLDIR}
rm -rf *~ *.deb *.changes *.buildinfo *.dsc *.orig.tar.* *.debian.tar.* ${ZFSDIR}
.PHONY: distclean
distclean: clean
.PHONY: upload
upload: ${DEBS}
tar -cf - ${DEBS} | ssh repoman@repo.proxmox.com -- upload --product pve,pmg --dist stretch --arch amd64
tar -cf - ${DEBS} | ssh repoman@repo.proxmox.com -- upload --product pve,pmg,pbs --dist buster --arch amd64
+2 -2
View File
@@ -2,8 +2,8 @@ Proxmox VE packaging for ZFS on Linux
This is based on code from:
https://github.com/zfsonlinux/pkg-spl.git
https://github.com/zfsonlinux/pkg-zfs.git
https://salsa.debian.org/zfsonlinux-team/zfs
https://salsa.debian.org/zfsonlinux-team/spl
We removed the dkms/modules related code, because we ship the
modules with the kernel.
+830
View File
@@ -0,0 +1,830 @@
zfs-linux (2.0.7-pve1) buster; urgency=medium
* update ZFS to 2.0.7
-- Proxmox Support Team <support@proxmox.com> Wed, 12 Jan 2022 18:46:26 +0100
zfs-linux (2.0.6-pve1~bpo10+1) buster; urgency=medium
* update ZFS to 2.0.6
-- Proxmox Support Team <support@proxmox.com> Tue, 28 Sep 2021 09:19:18 +0200
zfs-linux (2.0.5-pve1~bpo10+1) buster; urgency=medium
* Rebuild for buster based releases
-- Proxmox Support Team <support@proxmox.com> Wed, 21 Jul 2021 18:01:07 +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
+281
View File
@@ -0,0 +1,281 @@
Source: zfs-linux
Section: contrib/kernel
Priority: optional
Maintainer: Proxmox Support Team <support@proxmox.com>
Build-Depends: abigail-tools,
debhelper-compat (= 12),
dh-python,
libblkid-dev,
libelf-dev,
libpam0g-dev,
libssl-dev | libssl1.0-dev,
libtool,
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}),
libzpool4linux (= ${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,
libzpool4 and libzfs4.
Package: libzfs4linux
Section: contrib/libs
Architecture: linux-any
Depends: ${misc:Depends}, ${shlibs:Depends}
Breaks: libzfs2, libzfs2linux, libzfs3linux, libzfs4
Replaces: libzfs2, libzfs2linux, libzfs3linux, 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 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: libzpool4linux
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},
${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: zfsutils-linux
Section: contrib/admin
Architecture: linux-any
Depends: python3, ${misc:Depends}, ${python3:Depends}, ${shlibs:Depends}
Recommends: lsb-base, zfs-zed
Suggests: nfs-kernel-server,
samba-common-bin (>= 3.0.23),
zfs-initramfs
Conflicts: zfs, zfs-fuse
Provides: zfsutils
Description: command-line tools to manage OpenZFS filesystems
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}
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.
Package: zfs-dbg
Section: contrib/metapackages
Architecture: all
Suggests: libnvpair3linux-dbgsym,
libpam-zfs-dbgsym,
libuutil3linux-dbgsym,
libzfs4linux-dbgsym,
libzfsbootenv1linux-dbgsym,
libzpool4linux-dbgsym,
zfs-test-dbgsym,
zfsutils-linux-dbgsym,
zfs-zed-dbgsym,
Description: Transitional package. It can be safely removed.
+1281
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 b3c1befaa..660d8ccb9 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}|cut -f3- -d'-'|sed 's/-/_/g')
@@ -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 008075138..570e27707 100644
--- a/etc/systemd/system/zfs-zed.service.in
+++ b/etc/systemd/system/zfs-zed.service.in
@@ -4,7 +4,7 @@ Documentation=man:zed(8)
ConditionPathIsDirectory=/sys/module/zfs
[Service]
-ExecStart=@sbindir@/zed -F
+ExecStart=/usr/sbin/zed -F
Restart=on-abort
[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 f0317e23e..9a5e9cb17 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
@@ -13,7 +13,7 @@ ConditionPathIsDirectory=/sys/module/zfs
[Service]
Type=oneshot
RemainAfterExit=yes
ExecStartPre=/sbin/modprobe zfs
-ExecStart=@sbindir@/zpool import -aN -o cachefile=none
+ExecStart=@sbindir@/zpool import -aN -d /dev/disk/by-id -o cachefile=none
[Install]
WantedBy=zfs-import.target
--
2.14.2
+36
View File
@@ -0,0 +1,36 @@
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 | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/cmd/zed/zed.d/zed.rc b/cmd/zed/zed.d/zed.rc
index 1c278b2ef..41c075c09 100644
--- a/cmd/zed/zed.d/zed.rc
+++ b/cmd/zed/zed.d/zed.rc
@@ -15,7 +15,7 @@
# Email will only be sent if ZED_EMAIL_ADDR is defined.
# Disabled by default; uncomment to enable.
#
-#ZED_EMAIL_ADDR="root"
+ZED_EMAIL_ADDR="root"
##
# Name or path of executable responsible for sending notifications via email;
@@ -41,7 +41,7 @@
##
# Minimum number of seconds between notifications for a similar event.
#
-#ZED_NOTIFY_INTERVAL_SECS=3600
+ZED_NOTIFY_INTERVAL_SECS=3600
##
# Notification verbosity.
+29
View File
@@ -0,0 +1,29 @@
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
(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>
Description: track default symlinks, instead of symlinking
Forwarded: no need
---
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 8b2d0c200..118c96547 100644
--- a/cmd/zed/zed.d/Makefile.am
+++ b/cmd/zed/zed.d/Makefile.am
@@ -48,6 +48,6 @@ install-data-hook:
for f in $(zedconfdefaults); do \
test -f "$(DESTDIR)$(zedconfdir)/$${f}" -o \
-L "$(DESTDIR)$(zedconfdir)/$${f}" || \
- ln -s "$(zedexecdir)/$${f}" "$(DESTDIR)$(zedconfdir)"; \
+ echo "$${f}" >> "$(DESTDIR)$(zedexecdir)/DEFAULT-ENABLED" ; \
done
chmod 0600 "$(DESTDIR)$(zedconfdir)/zed.rc"
+55
View File
@@ -0,0 +1,55 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Antonio Russo <antonio.e.russo@gmail.com>
Date: Tue, 5 May 2020 22:15:16 -0600
Subject: [PATCH] Use installed python3
---
.../functional/cli_root/zfs_program/zfs_program_json.ksh | 6 +++---
.../tests/functional/rsend/send_encrypted_files.ksh | 2 +-
.../tests/functional/rsend/send_realloc_dnode_size.ksh | 2 +-
3 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/tests/zfs-tests/tests/functional/cli_root/zfs_program/zfs_program_json.ksh b/tests/zfs-tests/tests/functional/cli_root/zfs_program/zfs_program_json.ksh
index 3788543b0..c7ee4ae9a 100755
--- a/tests/zfs-tests/tests/functional/cli_root/zfs_program/zfs_program_json.ksh
+++ b/tests/zfs-tests/tests/functional/cli_root/zfs_program/zfs_program_json.ksh
@@ -100,10 +100,10 @@ typeset -a pos_cmds_out=(
# the same as the input and the --sort-keys option was added. Detect when
# --sort-keys is supported and apply the option to ensure the expected order.
#
-if python -m json.tool --sort-keys <<< "{}"; then
- JSON_TOOL_CMD="python -m json.tool --sort-keys"
+if python3 -m json.tool --sort-keys <<< "{}"; then
+ JSON_TOOL_CMD="python3 -m json.tool --sort-keys"
else
- JSON_TOOL_CMD="python -m json.tool"
+ JSON_TOOL_CMD="python3 -m json.tool"
fi
typeset -i cnt=0
diff --git a/tests/zfs-tests/tests/functional/rsend/send_encrypted_files.ksh b/tests/zfs-tests/tests/functional/rsend/send_encrypted_files.ksh
index d52f0261a..18356b017 100755
--- a/tests/zfs-tests/tests/functional/rsend/send_encrypted_files.ksh
+++ b/tests/zfs-tests/tests/functional/rsend/send_encrypted_files.ksh
@@ -87,7 +87,7 @@ log_must xattrtest -f 10 -x 3 -s 32768 -r -k -p /$TESTPOOL/$TESTFS2/xattrsadir
# ZoL issue #7432
log_must zfs set compression=on xattr=sa $TESTPOOL/$TESTFS2
log_must touch /$TESTPOOL/$TESTFS2/attrs
-log_must eval "python -c 'print \"a\" * 4096' | \
+log_must eval "python3 -c 'print \"a\" * 4096' | \
set_xattr_stdin bigval /$TESTPOOL/$TESTFS2/attrs"
log_must zfs set compression=off xattr=on $TESTPOOL/$TESTFS2
diff --git a/tests/zfs-tests/tests/functional/rsend/send_realloc_dnode_size.ksh b/tests/zfs-tests/tests/functional/rsend/send_realloc_dnode_size.ksh
index 551ed15db..bd30488ea 100755
--- a/tests/zfs-tests/tests/functional/rsend/send_realloc_dnode_size.ksh
+++ b/tests/zfs-tests/tests/functional/rsend/send_realloc_dnode_size.ksh
@@ -88,7 +88,7 @@ log_must zfs snapshot $POOL/fs@c
# 4. Create an empty file and add xattrs to it to exercise reclaiming a
# dnode that requires more than 1 slot for its bonus buffer (Zol #7433)
log_must zfs set compression=on xattr=sa $POOL/fs
-log_must eval "python -c 'print \"a\" * 512' |
+log_must eval "python3 -c 'print \"a\" * 512' |
set_xattr_stdin bigval /$POOL/fs/attrs"
log_must zfs snapshot $POOL/fs@d
@@ -0,0 +1,66 @@
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.
Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
---
etc/systemd/system/50-zfs.preset.in | 1 +
etc/systemd/system/Makefile.am | 1 +
etc/systemd/system/zfs-import@.service.in | 16 ++++++++++++++++
3 files changed, 18 insertions(+)
create mode 100644 etc/systemd/system/zfs-import@.service.in
diff --git a/etc/systemd/system/50-zfs.preset.in b/etc/systemd/system/50-zfs.preset.in
index e4056a92c..030611419 100644
--- a/etc/systemd/system/50-zfs.preset.in
+++ b/etc/systemd/system/50-zfs.preset.in
@@ -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/Makefile.am b/etc/systemd/system/Makefile.am
index c374a52ac..25d1b99d7 100644
--- a/etc/systemd/system/Makefile.am
+++ b/etc/systemd/system/Makefile.am
@@ -7,6 +7,7 @@ systemdunit_DATA = \
zfs-zed.service \
zfs-import-cache.service \
zfs-import-scan.service \
+ zfs-import@.service \
zfs-mount.service \
zfs-share.service \
zfs-volume-wait.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..9b4ee9371
--- /dev/null
+++ b/etc/systemd/system/zfs-import@.service.in
@@ -0,0 +1,16 @@
+[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
+
+[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,54 @@
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>
---
man/man1/Makefile.am | 2 +-
man/man8/Makefile.am | 1 +
man/{man1/arcstat.1 => man8/arcstat.8} | 2 +-
3 files changed, 3 insertions(+), 2 deletions(-)
rename man/{man1/arcstat.1 => man8/arcstat.8} (99%)
diff --git a/man/man1/Makefile.am b/man/man1/Makefile.am
index 8d7457a3e..101af7b6c 100644
--- a/man/man1/Makefile.am
+++ b/man/man1/Makefile.am
@@ -1,4 +1,4 @@
-dist_man_MANS = zhack.1 ztest.1 raidz_test.1 zvol_wait.1 arcstat.1
+dist_man_MANS = zhack.1 ztest.1 raidz_test.1 zvol_wait.1
EXTRA_DIST = cstyle.1
if BUILD_LINUX
diff --git a/man/man8/Makefile.am b/man/man8/Makefile.am
index 07f6aefa6..a757b1c62 100644
--- a/man/man8/Makefile.am
+++ b/man/man8/Makefile.am
@@ -1,6 +1,7 @@
include $(top_srcdir)/config/Substfiles.am
dist_man_MANS = \
+ arcstat.8 \
fsck.zfs.8 \
mount.zfs.8 \
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 ca508b49c..0aa81849a 100644
--- a/man/man1/arcstat.1
+++ b/man/man8/arcstat.8
@@ -13,7 +13,7 @@
.\" Copyright (c) 2015 by Delphix. All rights reserved.
.\" Copyright (c) 2020 by AJ Jordan. All rights reserved.
.\"
-.TH ARCSTAT 1 "Oct 20, 2020" OpenZFS
+.TH ARCSTAT 8 "Oct 20, 2020" OpenZFS
.SH NAME
arcstat \- report ZFS ARC and L2ARC statistics
.SH SYNOPSIS
+9
View File
@@ -0,0 +1,9 @@
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-Use-installed-python3.patch
0008-Add-systemd-unit-for-importing-specific-pools.patch
0009-Patch-move-manpage-arcstat-1-to-arcstat-8.patch
+1
View File
@@ -0,0 +1 @@
usr/lib/python3*
Vendored Executable
+127
View File
@@ -0,0 +1,127 @@
#!/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 --parallel
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'
# Use upstream's bash completion
install -D -t '$(CURDIR)/debian/tmp/usr/share/bash-completion/completions/' \
'$(CURDIR)/contrib/bash_completion.d/zfs'
# Move from bin_dir to /usr/sbin
# Remove suffix (.py) as per policy 10.4 - Scripts
# https://www.debian.org/doc/debian-policy/ch-files.html#s-scripts
mkdir -p '$(CURDIR)/debian/tmp/usr/sbin/'
mv '$(CURDIR)/debian/tmp/usr/bin/arc_summary' '$(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'
chmod a-x '$(CURDIR)/debian/tmp/usr/share/bash-completion/completions/zfs'
override_dh_python3:
dh_python3 -p python3-pyzfs
override_dh_makeshlibs:
dh_makeshlibs -a -V
override_dh_strip:
dh_strip --dbgsym-migration='zfs-dbg (<< 2.0.4~)'
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
+60
View File
@@ -0,0 +1,60 @@
#!/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-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 || return 1
}
trim_if_not_already_trimming () {
pool="$1"
if ! zpool status "${pool}" | grep -q "trimming"; then
# Ignore errors (i.e. HDD pools),
# and continue with trimming other pools.
zpool trim "${pool}" || true
fi
}
zpool_is_nvme_only () {
zpool=$1
# get a list of devices attached to the specified zpool
zpool list -vHPL "${zpool}" |
awk -F'\t' '$2 ~ /^\/dev\// {
if($2 !~ /^\/dev\/nvme/)
exit 1
}'
}
# 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 pool
do
# read user-defined config
ret=$(get_property "${pool}")
if [ $? -ne 0 ] || [ "disable" = "${ret}" ]; then
:
elif [ "enable" = "${ret}" ]; then
trim_if_not_already_trimming "${pool}"
elif [ "-" = "${ret}" ] || [ "auto" = "${ret}" ]; then
if zpool_is_nvme_only "${pool}"; then
trim_if_not_already_trimming "${pool}"
fi
else
cat > /dev/stderr <<EOF
$0: [WARNING] illegal value "${ret}" for property "${PROPERTY_NAME}" of ZFS dataset "${pool}".
$0: Acceptable choices for this property are: auto, enable, disable. The default is auto.
EOF
fi
done
+2
View File
@@ -0,0 +1,2 @@
version=3
https://zfsonlinux.org/ .*zfs-([\d\.]+)\.tar\.gz$
+2
View File
@@ -0,0 +1,2 @@
../tree/zfs-initramfs/* /
usr/share/initramfs-tools/*
+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
+13
View File
@@ -0,0 +1,13 @@
arch-dependent-file-in-usr-share
script-not-executable usr/share/zfs/common.sh
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/zfs_jail/jail.conf
script-not-executable usr/share/zfs/zfs-tests/include/default.cfg
script-not-executable usr/share/zfs/zfs-tests/tests/functional/cli_root/zfs_wait/zfs_wait.kshlib
script-not-executable usr/share/zfs/zfs-tests/tests/functional/cli_root/zpool_wait/zpool_wait.kshlib
script-not-executable usr/share/zfs/zfs-tests/tests/functional/persist_l2arc/persist_l2arc.cfg
script-not-executable usr/share/zfs/zfs-tests/tests/functional/redacted_send/redacted.kshlib
package-contains-documentation-outside-usr-share-doc usr/share/zfs/zfs-tests/*
+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
+120
View File
@@ -0,0 +1,120 @@
../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-mount.service
lib/systemd/system/zfs-share.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/lib/modules-load.d/ lib/
usr/lib/zfs-linux/zpool.d/
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/man5/
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-jail.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-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-unjail.8
usr/share/man/man8/zfs-unload-key.8
usr/share/man/man8/zfs-unmount.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/zfsconcepts.8
usr/share/man/man8/zfsprops.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-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/zpool.8
usr/share/man/man8/zpoolconcepts.8
usr/share/man/man8/zpoolprops.8
usr/share/man/man8/zstream.8
usr/share/man/man8/zstreamdump.8
+14
View File
@@ -0,0 +1,14 @@
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
package-supports-alternative-init-but-no-init.d-script lib/systemd/system/zfs-load-module.service
+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#
-126
View File
@@ -1,126 +0,0 @@
spl-linux (0.7.7-pve1~bpo9) unstable; urgency=medium
* update SPL to 0.7.7
-- Proxmox Support Team <support@proxmox.com> Tue, 3 Apr 2018 14:28:35 +0200
spl-linux (0.7.6-pve1~bpo9) unstable; urgency=medium
* update SPL to 0.7.6
-- Proxmox Support Team <support@proxmox.com> Wed, 21 Feb 2018 09:47:54 +0100
spl-linux (0.7.4-pve1~bpo9) unstable; urgency=medium
* update SPL to 0.7.4
-- Proxmox Support Team <support@proxmox.com> Tue, 19 Dec 2017 12:52:42 +0100
spl-linux (0.7.3-pve1~bpo9) unstable; urgency=medium
* update spl to 0.7.3
-- Proxmox Support Team <support@proxmox.com> Mon, 6 Nov 2017 09:14:19 +0100
spl-linux (0.7.2-pve1~bpo90) unstable; urgency=medium
* update spl to 0.7.2
* clean up man pages
-- Proxmox Support Team <support@proxmox.com> Thu, 12 Oct 2017 13:33:04 +0200
spl-linux (0.6.5.11-pve10~bpo90) unstable; urgency=medium
* update spl to debian/0.6.5.11-1
-- Proxmox Support Team <support@proxmox.com> Thu, 27 Jul 2017 13:11:45 +0200
spl-linux (0.6.5.9-pve9~bpo90) unstable; urgency=medium
* rebuild for PVE 5.0 / Debian Stretch
-- Proxmox Support Team <support@proxmox.com> Fri, 10 Mar 2017 09:45:52 +0100
spl-linux (0.6.5.9-pve8~bpo80) unstable; urgency=medium
* update spl to debian/0.6.5.9-1
-- Proxmox Support Team <support@proxmox.com> Mon, 6 Feb 2017 12:39:35 +0100
spl-linux (0.6.5.8-pve7~bpo80) unstable; urgency=medium
* update spl to debian/0.6.5.8-2
* switch package upstream sources to Debian (Jessie)
-- Proxmox Support Team <support@proxmox.com> Wed, 12 Oct 2016 11:16:02 +0200
spl-linux (0.6.5.7-pve6~bpo80) unstable; urgency=medium
* update pkg-spl to jessie/0.6.5.7-5
* change package versioning to allow upgrades from PVE3/wheezy
-- Proxmox Support Team <support@proxmox.com> Tue, 28 Jun 2016 09:50:00 +0200
spl-linux (0.6.5-pve5~jessie) unstable; urgency=medium
* Update pkg-spl to jessie/0.6.5.6-3
-- Proxmox Support Team <support@proxmox.com> Fri, 15 Apr 2016 11:11:59 +0200
spl-linux (0.6.5-pve4~jessie) unstable; urgency=medium
* update to 0.6.5.6
-- Proxmox Support Team <support@proxmox.com> Wed, 30 Mar 2016 10:49:49 +0200
spl-linux (0.6.5-pve3~jessie) unstable; urgency=medium
* update to 0.6.5.4
-- Proxmox Support Team <support@proxmox.com> Thu, 14 Jan 2016 11:00:40 +0100
spl-linux (0.6.5-pve2~jessie) unstable; urgency=medium
* update to 0.6.5.3
-- Proxmox Support Team <support@proxmox.com> Wed, 04 Nov 2015 17:40:58 +0100
spl-linux (0.6.5-pve1~jessie) unstable; urgency=medium
* update to master/debian/jessie/0.6.5-1
-- Proxmox Support Team <support@proxmox.com> Mon, 21 Sep 2015 10:04:23 +0200
spl-linux (0.6.4-pve3~jessie) unstable; urgency=medium
* update to snapshot/debian/jessie/0.6.4-8-8ac6ff
-- Proxmox Support Team <support@proxmox.com> Mon, 24 Aug 2015 06:14:12 +0200
spl-linux (0.6.4-pve2~jessie) unstable; urgency=medium
* update to 0.6.4.2 (snapshot/debian/jessie/0.6.4-6-37d7cd)
-- Proxmox Support Team <support@proxmox.com> Tue, 21 Jul 2015 11:02:31 +0200
spl-linux (0.6.4-pve1~jessie) unstable; urgency=medium
* update to 0.6.4 (use upstream zol package definitions)
-- Proxmox Support Team <support@proxmox.com> Tue, 14 Apr 2015 10:17:26 +0200
spl-linux (0.6.3-pve1~jessie) unstable; urgency=medium
* recompile for jessie
-- Proxmox Support Team <support@proxmox.com> Sat, 28 Feb 2015 16:03:01 +0100
spl-linux (0.6.3-pve1~wheezy) unstable; urgency=low
* first version for Proxmox VE
-- Proxmox Support Team <support@proxmox.com> Sat, 10 Jan 2015 14:06:34 +0100
Submodule spl-debian deleted from d169ca25d5
@@ -1,170 +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 | 30 ------------------------
debian/control | 1 -
debian/rules | 70 ++-----------------------------------------------------
3 files changed, 2 insertions(+), 99 deletions(-)
diff --git a/debian/control.in b/debian/control.in
index 02d3182..5fd81aa 100644
--- a/debian/control.in
+++ b/debian/control.in
@@ -8,46 +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@salsa.debian.org:zfsonlinux-team/spl.git
Vcs-Browser: https://salsa.debian.org/zfsonlinux-team/spl
-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}),
- @LINUX_COMPAT@
-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 c3abf8d..455c34d 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 c7f2608..bca58f7 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:
sed "s/@LINUX_COMPAT@/linux-libc-dev \(< $(shell debian/get_next.sh)\)/" 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
- sed "s/@LINUX_COMPAT@/linux-libc-dev \(< $(shell debian/get_next.sh)\)/" 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}
+ cp debian/control.in debian/control
--
2.14.2
@@ -1,70 +0,0 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: gaurkuma <gaurkuma@users.noreply.github.com>
Date: Fri, 11 Aug 2017 08:53:35 -0700
Subject: [PATCH] Allow longer SPA names in stats
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Reviewed-by: Giuseppe Di Natale <dinatale2@llnl.gov>
Signed-off-by: gaurkuma <gauravk.18@gmail.com>
Closes #641
(cherry picked from commit cbf0dff3d8a13c2b4e547321ff2005055521e5ee)
Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
---
include/sys/kstat.h | 2 +-
module/spl/spl-kstat.c | 13 +++++++++----
2 files changed, 10 insertions(+), 5 deletions(-)
diff --git a/include/sys/kstat.h b/include/sys/kstat.h
index faf6b81..7862ab0 100644
--- a/include/sys/kstat.h
+++ b/include/sys/kstat.h
@@ -32,7 +32,7 @@
#include <sys/kmem.h>
#include <sys/mutex.h>
-#define KSTAT_STRLEN 31
+#define KSTAT_STRLEN 255
#define KSTAT_RAW_MAX (128*1024)
/* For reference valid classes are:
diff --git a/module/spl/spl-kstat.c b/module/spl/spl-kstat.c
index e306915..ed52653 100644
--- a/module/spl/spl-kstat.c
+++ b/module/spl/spl-kstat.c
@@ -614,21 +614,26 @@ kstat_detect_collision(kstat_t *ksp)
{
kstat_module_t *module;
kstat_t *tmp;
- char parent[KSTAT_STRLEN+1];
+ char *parent;
char *cp;
- (void) strlcpy(parent, ksp->ks_module, sizeof(parent));
+ parent = kmem_asprintf("%s", ksp->ks_module);
- if ((cp = strrchr(parent, '/')) == NULL)
+ if ((cp = strrchr(parent, '/')) == NULL) {
+ strfree(parent);
return (0);
+ }
cp[0] = '\0';
if ((module = kstat_find_module(parent)) != NULL) {
list_for_each_entry(tmp, &module->ksm_kstat_list, ks_list)
- if (strncmp(tmp->ks_name, cp+1, KSTAT_STRLEN) == 0)
+ if (strncmp(tmp->ks_name, cp+1, KSTAT_STRLEN) == 0) {
+ strfree(parent);
return (EEXIST);
+ }
}
+ strfree(parent);
return (0);
}
--
2.14.2
@@ -1,527 +0,0 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Brian Behlendorf <behlendorf1@llnl.gov>
Date: Fri, 27 Oct 2017 15:49:14 -0700
Subject: [PATCH] Remove vn_rename and vn_remove
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Both vn_rename and vn_remove have been historically problematic
to implement reliably. Rather than fixing them yet again they
are being removed.
Reviewed-by: Arkadiusz Bubala <arkadiusz.bubala@open-e.com>
Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Closes #648
Closes #661
(cherry picked from commit 1cb26f06524bdddef24352a3d9ac90a402294f2b)
Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
---
include/sys/vnode.h | 2 -
module/spl/spl-vnode.c | 217 ---------------------------------------------
module/splat/splat-vnode.c | 96 --------------------
config/spl-build.m4 | 101 ---------------------
4 files changed, 416 deletions(-)
diff --git a/include/sys/vnode.h b/include/sys/vnode.h
index 0b857d3..ad7f8f4 100644
--- a/include/sys/vnode.h
+++ b/include/sys/vnode.h
@@ -177,8 +177,6 @@ extern int vn_rdwr(uio_rw_t uio, vnode_t *vp, void *addr, ssize_t len,
extern int vn_close(vnode_t *vp, int flags, int x1, int x2, void *x3, void *x4);
extern int vn_seek(vnode_t *vp, offset_t o, offset_t *op, void *ct);
-extern int vn_remove(const char *path, uio_seg_t seg, int flags);
-extern int vn_rename(const char *path1, const char *path2, int x1);
extern int vn_getattr(vnode_t *vp, vattr_t *vap, int flags, void *x3, void *x4);
extern int vn_fsync(vnode_t *vp, int flags, void *x3, void *x4);
extern int vn_space(vnode_t *vp, int cmd, struct flock *bfp, int flag,
diff --git a/module/spl/spl-vnode.c b/module/spl/spl-vnode.c
index ca19d73..77bfb45 100644
--- a/module/spl/spl-vnode.c
+++ b/module/spl/spl-vnode.c
@@ -269,223 +269,6 @@ vn_seek(vnode_t *vp, offset_t ooff, offset_t *noffp, void *ct)
}
EXPORT_SYMBOL(vn_seek);
-/*
- * spl_basename() takes a NULL-terminated string s as input containing a path.
- * It returns a char pointer to a string and a length that describe the
- * basename of the path. If the basename is not "." or "/", it will be an index
- * into the string. While the string should be NULL terminated, the section
- * referring to the basename is not. spl_basename is dual-licensed GPLv2+ and
- * CC0. Anyone wishing to reuse it in another codebase may pick either license.
- */
-static void
-spl_basename(const char *s, const char **str, int *len)
-{
- size_t i, end;
-
- ASSERT(str);
- ASSERT(len);
-
- if (!s || !*s) {
- *str = ".";
- *len = 1;
- return;
- }
-
- i = strlen(s) - 1;
-
- while (i && s[i--] == '/');
-
- if (i == 0) {
- *str = "/";
- *len = 1;
- return;
- }
-
- end = i;
-
- for (end = i; i; i--) {
- if (s[i] == '/') {
- *str = &s[i+1];
- *len = end - i + 1;
- return;
- }
- }
-
- *str = s;
- *len = end + 1;
-}
-
-static struct dentry *
-spl_kern_path_locked(const char *name, struct path *path)
-{
- struct path parent;
- struct dentry *dentry;
- const char *basename;
- int len;
- int rc;
-
- ASSERT(name);
- ASSERT(path);
-
- spl_basename(name, &basename, &len);
-
- /* We do not accept "." or ".." */
- if (len <= 2 && basename[0] == '.')
- if (len == 1 || basename[1] == '.')
- return (ERR_PTR(-EACCES));
-
- rc = kern_path(name, LOOKUP_PARENT, &parent);
- if (rc)
- return (ERR_PTR(rc));
-
- /* use I_MUTEX_PARENT because vfs_unlink needs it */
- spl_inode_lock_nested(parent.dentry->d_inode, I_MUTEX_PARENT);
-
- dentry = lookup_one_len(basename, parent.dentry, len);
- if (IS_ERR(dentry)) {
- spl_inode_unlock(parent.dentry->d_inode);
- path_put(&parent);
- } else {
- *path = parent;
- }
-
- return (dentry);
-}
-
-/* Based on do_unlinkat() from linux/fs/namei.c */
-int
-vn_remove(const char *path, uio_seg_t seg, int flags)
-{
- struct dentry *dentry;
- struct path parent;
- struct inode *inode = NULL;
- int rc = 0;
-
- ASSERT(seg == UIO_SYSSPACE);
- ASSERT(flags == RMFILE);
-
- dentry = spl_kern_path_locked(path, &parent);
- rc = PTR_ERR(dentry);
- if (!IS_ERR(dentry)) {
- if (parent.dentry->d_name.name[parent.dentry->d_name.len]) {
- rc = 0;
- goto slashes;
- }
-
- inode = dentry->d_inode;
- if (inode) {
- atomic_inc(&inode->i_count);
- } else {
- rc = 0;
- goto slashes;
- }
-
-#ifdef HAVE_2ARGS_VFS_UNLINK
- rc = vfs_unlink(parent.dentry->d_inode, dentry);
-#else
- rc = vfs_unlink(parent.dentry->d_inode, dentry, NULL);
-#endif /* HAVE_2ARGS_VFS_UNLINK */
-exit1:
- dput(dentry);
- } else {
- return (-rc);
- }
-
- spl_inode_unlock(parent.dentry->d_inode);
- if (inode)
- iput(inode); /* truncate the inode here */
-
- path_put(&parent);
- return (-rc);
-
-slashes:
- rc = !dentry->d_inode ? -ENOENT :
- S_ISDIR(dentry->d_inode->i_mode) ? -EISDIR : -ENOTDIR;
- goto exit1;
-} /* vn_remove() */
-EXPORT_SYMBOL(vn_remove);
-
-/* Based on do_rename() from linux/fs/namei.c */
-int
-vn_rename(const char *oldname, const char *newname, int x1)
-{
- struct dentry *old_dir, *new_dir;
- struct dentry *old_dentry, *new_dentry;
- struct dentry *trap;
- struct path old_parent, new_parent;
- int rc = 0;
-
- old_dentry = spl_kern_path_locked(oldname, &old_parent);
- if (IS_ERR(old_dentry)) {
- rc = PTR_ERR(old_dentry);
- goto exit;
- }
-
- spl_inode_unlock(old_parent.dentry->d_inode);
-
- new_dentry = spl_kern_path_locked(newname, &new_parent);
- if (IS_ERR(new_dentry)) {
- rc = PTR_ERR(new_dentry);
- goto exit2;
- }
-
- spl_inode_unlock(new_parent.dentry->d_inode);
-
- rc = -EXDEV;
- if (old_parent.mnt != new_parent.mnt)
- goto exit3;
-
- old_dir = old_parent.dentry;
- new_dir = new_parent.dentry;
- trap = lock_rename(new_dir, old_dir);
-
- /* source should not be ancestor of target */
- rc = -EINVAL;
- if (old_dentry == trap)
- goto exit4;
-
- /* target should not be an ancestor of source */
- rc = -ENOTEMPTY;
- if (new_dentry == trap)
- goto exit4;
-
- /* source must exist */
- rc = -ENOENT;
- if (!old_dentry->d_inode)
- goto exit4;
-
- /* unless the source is a directory trailing slashes give -ENOTDIR */
- if (!S_ISDIR(old_dentry->d_inode->i_mode)) {
- rc = -ENOTDIR;
- if (old_dentry->d_name.name[old_dentry->d_name.len])
- goto exit4;
- if (new_dentry->d_name.name[new_dentry->d_name.len])
- goto exit4;
- }
-
-#if defined(HAVE_4ARGS_VFS_RENAME)
- rc = vfs_rename(old_dir->d_inode, old_dentry,
- new_dir->d_inode, new_dentry);
-#elif defined(HAVE_5ARGS_VFS_RENAME)
- rc = vfs_rename(old_dir->d_inode, old_dentry,
- new_dir->d_inode, new_dentry, NULL);
-#else
- rc = vfs_rename(old_dir->d_inode, old_dentry,
- new_dir->d_inode, new_dentry, NULL, 0);
-#endif
-exit4:
- unlock_rename(new_dir, old_dir);
-exit3:
- dput(new_dentry);
- path_put(&new_parent);
-exit2:
- dput(old_dentry);
- path_put(&old_parent);
-exit:
- return (-rc);
-}
-EXPORT_SYMBOL(vn_rename);
-
int
vn_getattr(vnode_t *vp, vattr_t *vap, int flags, void *x3, void *x4)
{
diff --git a/module/splat/splat-vnode.c b/module/splat/splat-vnode.c
index ad69cf6..9160003 100644
--- a/module/splat/splat-vnode.c
+++ b/module/splat/splat-vnode.c
@@ -42,10 +42,6 @@
#define SPLAT_VNODE_TEST3_NAME "vn_rdwr"
#define SPLAT_VNODE_TEST3_DESC "Vn_rdwrt Test"
-#define SPLAT_VNODE_TEST4_ID 0x0904
-#define SPLAT_VNODE_TEST4_NAME "vn_rename"
-#define SPLAT_VNODE_TEST4_DESC "Vn_rename Test"
-
#define SPLAT_VNODE_TEST5_ID 0x0905
#define SPLAT_VNODE_TEST5_NAME "vn_getattr"
#define SPLAT_VNODE_TEST5_DESC "Vn_getattr Test"
@@ -218,94 +214,10 @@ splat_vnode_test3(struct file *file, void *arg)
out:
VOP_CLOSE(vp, 0, 0, 0, 0, 0);
- vn_remove(SPLAT_VNODE_TEST_FILE_RW, UIO_SYSSPACE, RMFILE);
return -rc;
} /* splat_vnode_test3() */
-#if LINUX_VERSION_CODE <= KERNEL_VERSION(4,1,0)
-static int
-splat_vnode_test4(struct file *file, void *arg)
-{
- vnode_t *vp;
- char buf1[32] = "SPL VNode Interface Test File\n";
- char buf2[32] = "";
- int rc;
-
- if ((rc = splat_vnode_unlink_all(file, arg, SPLAT_VNODE_TEST4_NAME)))
- return rc;
-
- if ((rc = vn_open(SPLAT_VNODE_TEST_FILE_RW1, UIO_SYSSPACE,
- FWRITE | FREAD | FCREAT | FEXCL, 0644, &vp, 0, 0))) {
- splat_vprint(file, SPLAT_VNODE_TEST4_NAME,
- "Failed to vn_open test file: %s (%d)\n",
- SPLAT_VNODE_TEST_FILE_RW1, rc);
- goto out;
- }
-
- rc = vn_rdwr(UIO_WRITE, vp, buf1, strlen(buf1), 0,
- UIO_SYSSPACE, 0, RLIM64_INFINITY, 0, NULL);
- if (rc) {
- splat_vprint(file, SPLAT_VNODE_TEST4_NAME,
- "Failed vn_rdwr write of test file: %s (%d)\n",
- SPLAT_VNODE_TEST_FILE_RW1, rc);
- goto out2;
- }
-
- VOP_CLOSE(vp, 0, 0, 0, 0, 0);
-
- rc = vn_rename(SPLAT_VNODE_TEST_FILE_RW1,SPLAT_VNODE_TEST_FILE_RW2,0);
- if (rc) {
- splat_vprint(file, SPLAT_VNODE_TEST4_NAME, "Failed vn_rename "
- "%s -> %s (%d)\n",
- SPLAT_VNODE_TEST_FILE_RW1,
- SPLAT_VNODE_TEST_FILE_RW2, rc);
- goto out;
- }
-
- if ((rc = vn_open(SPLAT_VNODE_TEST_FILE_RW2, UIO_SYSSPACE,
- FREAD | FEXCL, 0644, &vp, 0, 0))) {
- splat_vprint(file, SPLAT_VNODE_TEST4_NAME,
- "Failed to vn_open test file: %s (%d)\n",
- SPLAT_VNODE_TEST_FILE_RW2, rc);
- goto out;
- }
-
- rc = vn_rdwr(UIO_READ, vp, buf2, strlen(buf1), 0,
- UIO_SYSSPACE, 0, RLIM64_INFINITY, 0, NULL);
- if (rc) {
- splat_vprint(file, SPLAT_VNODE_TEST4_NAME,
- "Failed vn_rdwr read of test file: %s (%d)\n",
- SPLAT_VNODE_TEST_FILE_RW2, rc);
- goto out2;
- }
-
- if (strncmp(buf1, buf2, strlen(buf1))) {
- rc = EINVAL;
- splat_vprint(file, SPLAT_VNODE_TEST4_NAME,
- "Failed strncmp data written does not match "
- "data read\nWrote: %sRead: %s\n", buf1, buf2);
- goto out2;
- }
-
- rc = 0;
- splat_vprint(file, SPLAT_VNODE_TEST4_NAME, "Wrote to %s: %s",
- SPLAT_VNODE_TEST_FILE_RW1, buf1);
- splat_vprint(file, SPLAT_VNODE_TEST4_NAME, "Read from %s: %s",
- SPLAT_VNODE_TEST_FILE_RW2, buf2);
- splat_vprint(file, SPLAT_VNODE_TEST4_NAME, "Successfully renamed "
- "test file %s -> %s and verified data pattern\n",
- SPLAT_VNODE_TEST_FILE_RW1, SPLAT_VNODE_TEST_FILE_RW2);
-out2:
- VOP_CLOSE(vp, 0, 0, 0, 0, 0);
-out:
- vn_remove(SPLAT_VNODE_TEST_FILE_RW1, UIO_SYSSPACE, RMFILE);
- vn_remove(SPLAT_VNODE_TEST_FILE_RW2, UIO_SYSSPACE, RMFILE);
-
- return -rc;
-} /* splat_vnode_test4() */
-#endif
-
static int
splat_vnode_test5(struct file *file, void *arg)
{
@@ -387,7 +299,6 @@ splat_vnode_test6(struct file *file, void *arg)
"fsync'ed test file %s\n", SPLAT_VNODE_TEST_FILE_RW);
out:
VOP_CLOSE(vp, 0, 0, 0, 0, 0);
- vn_remove(SPLAT_VNODE_TEST_FILE_RW, UIO_SYSSPACE, RMFILE);
return -rc;
} /* splat_vnode_test6() */
@@ -415,10 +326,6 @@ splat_vnode_init(void)
SPLAT_VNODE_TEST2_ID, splat_vnode_test2);
splat_test_init(sub, SPLAT_VNODE_TEST3_NAME, SPLAT_VNODE_TEST3_DESC,
SPLAT_VNODE_TEST3_ID, splat_vnode_test3);
-#if LINUX_VERSION_CODE <= KERNEL_VERSION(4,1,0)
- splat_test_init(sub, SPLAT_VNODE_TEST4_NAME, SPLAT_VNODE_TEST4_DESC,
- SPLAT_VNODE_TEST4_ID, splat_vnode_test4);
-#endif
splat_test_init(sub, SPLAT_VNODE_TEST5_NAME, SPLAT_VNODE_TEST5_DESC,
SPLAT_VNODE_TEST5_ID, splat_vnode_test5);
splat_test_init(sub, SPLAT_VNODE_TEST6_NAME, SPLAT_VNODE_TEST6_DESC,
@@ -434,9 +341,6 @@ splat_vnode_fini(splat_subsystem_t *sub)
splat_test_fini(sub, SPLAT_VNODE_TEST6_ID);
splat_test_fini(sub, SPLAT_VNODE_TEST5_ID);
-#if LINUX_VERSION_CODE <= KERNEL_VERSION(4,1,0)
- splat_test_fini(sub, SPLAT_VNODE_TEST4_ID);
-#endif
splat_test_fini(sub, SPLAT_VNODE_TEST3_ID);
splat_test_fini(sub, SPLAT_VNODE_TEST2_ID);
splat_test_fini(sub, SPLAT_VNODE_TEST1_ID);
diff --git a/config/spl-build.m4 b/config/spl-build.m4
index 25013b5..926abd5 100644
--- a/config/spl-build.m4
+++ b/config/spl-build.m4
@@ -27,8 +27,6 @@ AC_DEFUN([SPL_AC_CONFIG_KERNEL], [
SPL_AC_CONFIG_TRIM_UNUSED_KSYMS
SPL_AC_PDE_DATA
SPL_AC_SET_FS_PWD_WITH_CONST
- SPL_AC_2ARGS_VFS_UNLINK
- SPL_AC_4ARGS_VFS_RENAME
SPL_AC_2ARGS_VFS_FSYNC
SPL_AC_INODE_TRUNCATE_RANGE
SPL_AC_FS_STRUCT_SPINLOCK
@@ -936,105 +934,6 @@ AC_DEFUN([SPL_AC_SET_FS_PWD_WITH_CONST],
EXTRA_KCFLAGS="$tmp_flags"
])
-dnl #
-dnl # 3.13 API change
-dnl # vfs_unlink() updated to take a third delegated_inode argument.
-dnl #
-AC_DEFUN([SPL_AC_2ARGS_VFS_UNLINK],
- [AC_MSG_CHECKING([whether vfs_unlink() wants 2 args])
- SPL_LINUX_TRY_COMPILE([
- #include <linux/fs.h>
- ],[
- vfs_unlink((struct inode *) NULL, (struct dentry *) NULL);
- ],[
- AC_MSG_RESULT(yes)
- AC_DEFINE(HAVE_2ARGS_VFS_UNLINK, 1,
- [vfs_unlink() wants 2 args])
- ],[
- AC_MSG_RESULT(no)
- dnl #
- dnl # Linux 3.13 API change
- dnl # Added delegated inode
- dnl #
- AC_MSG_CHECKING([whether vfs_unlink() wants 3 args])
- SPL_LINUX_TRY_COMPILE([
- #include <linux/fs.h>
- ],[
- vfs_unlink((struct inode *) NULL,
- (struct dentry *) NULL,
- (struct inode **) NULL);
- ],[
- AC_MSG_RESULT(yes)
- AC_DEFINE(HAVE_3ARGS_VFS_UNLINK, 1,
- [vfs_unlink() wants 3 args])
- ],[
- AC_MSG_ERROR(no)
- ])
-
- ])
-])
-
-dnl #
-dnl # 3.13 and 3.15 API changes
-dnl # Added delegated inode and flags argument.
-dnl #
-AC_DEFUN([SPL_AC_4ARGS_VFS_RENAME],
- [AC_MSG_CHECKING([whether vfs_rename() wants 4 args])
- SPL_LINUX_TRY_COMPILE([
- #include <linux/fs.h>
- ],[
- vfs_rename((struct inode *) NULL, (struct dentry *) NULL,
- (struct inode *) NULL, (struct dentry *) NULL);
- ],[
- AC_MSG_RESULT(yes)
- AC_DEFINE(HAVE_4ARGS_VFS_RENAME, 1,
- [vfs_rename() wants 4 args])
- ],[
- AC_MSG_RESULT(no)
- dnl #
- dnl # Linux 3.13 API change
- dnl # Added delegated inode
- dnl #
- AC_MSG_CHECKING([whether vfs_rename() wants 5 args])
- SPL_LINUX_TRY_COMPILE([
- #include <linux/fs.h>
- ],[
- vfs_rename((struct inode *) NULL,
- (struct dentry *) NULL,
- (struct inode *) NULL,
- (struct dentry *) NULL,
- (struct inode **) NULL);
- ],[
- AC_MSG_RESULT(yes)
- AC_DEFINE(HAVE_5ARGS_VFS_RENAME, 1,
- [vfs_rename() wants 5 args])
- ],[
- AC_MSG_RESULT(no)
- dnl #
- dnl # Linux 3.15 API change
- dnl # Added flags
- dnl #
- AC_MSG_CHECKING([whether vfs_rename() wants 6 args])
- SPL_LINUX_TRY_COMPILE([
- #include <linux/fs.h>
- ],[
- vfs_rename((struct inode *) NULL,
- (struct dentry *) NULL,
- (struct inode *) NULL,
- (struct dentry *) NULL,
- (struct inode **) NULL,
- (unsigned int) 0);
- ],[
- AC_MSG_RESULT(yes)
- AC_DEFINE(HAVE_6ARGS_VFS_RENAME, 1,
- [vfs_rename() wants 6 args])
- ],[
- AC_MSG_ERROR(no)
- ])
- ])
- ])
-])
-
dnl #
dnl # 2.6.36 API change,
dnl # The 'struct fs_struct->lock' was changed from a rwlock_t to
--
2.14.2
@@ -1,169 +0,0 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: James Cowgill <jcowgill@users.noreply.github.com>
Date: Mon, 30 Oct 2017 18:16:56 +0000
Subject: [PATCH] Remove all spin_is_locked calls
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
On systems with CONFIG_SMP turned off, spin_is_locked always returns
false causing these assertions to fail. Remove them as suggested in
zfsonlinux/zfs#6558.
Reviewed-by: George Melikov <mail@gmelikov.ru>
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: James Cowgill <james.cowgill@mips.com>
Closes #665
(cherry picked from commit 9e573b7f9a5cf3e1cb6bb1b66bc35d5bb93cfaa9)
Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
---
module/spl/spl-kmem-cache.c | 4 ----
module/spl/spl-taskq.c | 13 -------------
module/spl/spl-tsd.c | 1 -
module/spl/spl-vnode.c | 2 --
4 files changed, 20 deletions(-)
diff --git a/module/spl/spl-kmem-cache.c b/module/spl/spl-kmem-cache.c
index 45576b9..3668669 100644
--- a/module/spl/spl-kmem-cache.c
+++ b/module/spl/spl-kmem-cache.c
@@ -382,7 +382,6 @@ spl_slab_free(spl_kmem_slab_t *sks,
skc = sks->sks_cache;
ASSERT(skc->skc_magic == SKC_MAGIC);
- ASSERT(spin_is_locked(&skc->skc_lock));
/*
* Update slab/objects counters in the cache, then remove the
@@ -583,7 +582,6 @@ __spl_cache_flush(spl_kmem_cache_t *skc, spl_kmem_magazine_t *skm, int flush)
ASSERT(skc->skc_magic == SKC_MAGIC);
ASSERT(skm->skm_magic == SKM_MAGIC);
- ASSERT(spin_is_locked(&skc->skc_lock));
for (i = 0; i < count; i++)
spl_cache_shrink(skc, skm->skm_objs[i]);
@@ -1125,7 +1123,6 @@ spl_cache_obj(spl_kmem_cache_t *skc, spl_kmem_slab_t *sks)
ASSERT(skc->skc_magic == SKC_MAGIC);
ASSERT(sks->sks_magic == SKS_MAGIC);
- ASSERT(spin_is_locked(&skc->skc_lock));
sko = list_entry(sks->sks_free_list.next, spl_kmem_obj_t, sko_list);
ASSERT(sko->sko_magic == SKO_MAGIC);
@@ -1396,7 +1393,6 @@ spl_cache_shrink(spl_kmem_cache_t *skc, void *obj)
spl_kmem_obj_t *sko = NULL;
ASSERT(skc->skc_magic == SKC_MAGIC);
- ASSERT(spin_is_locked(&skc->skc_lock));
sko = spl_sko_from_obj(skc, obj);
ASSERT(sko->sko_magic == SKO_MAGIC);
diff --git a/module/spl/spl-taskq.c b/module/spl/spl-taskq.c
index 89c53a5..ae26bdb 100644
--- a/module/spl/spl-taskq.c
+++ b/module/spl/spl-taskq.c
@@ -103,7 +103,6 @@ task_alloc(taskq_t *tq, uint_t flags, unsigned long *irqflags)
int count = 0;
ASSERT(tq);
- ASSERT(spin_is_locked(&tq->tq_lock));
retry:
/* Acquire taskq_ent_t's from free list if available */
if (!list_empty(&tq->tq_free_list) && !(flags & TQ_NEW)) {
@@ -168,7 +167,6 @@ task_free(taskq_t *tq, taskq_ent_t *t)
{
ASSERT(tq);
ASSERT(t);
- ASSERT(spin_is_locked(&tq->tq_lock));
ASSERT(list_empty(&t->tqent_list));
ASSERT(!timer_pending(&t->tqent_timer));
@@ -185,7 +183,6 @@ task_done(taskq_t *tq, taskq_ent_t *t)
{
ASSERT(tq);
ASSERT(t);
- ASSERT(spin_is_locked(&tq->tq_lock));
/* Wake tasks blocked in taskq_wait_id() */
wake_up_all(&t->tqent_waitq);
@@ -274,7 +271,6 @@ taskq_lowest_id(taskq_t *tq)
taskq_thread_t *tqt;
ASSERT(tq);
- ASSERT(spin_is_locked(&tq->tq_lock));
if (!list_empty(&tq->tq_pend_list)) {
t = list_entry(tq->tq_pend_list.next, taskq_ent_t, tqent_list);
@@ -312,7 +308,6 @@ taskq_insert_in_order(taskq_t *tq, taskq_thread_t *tqt)
ASSERT(tq);
ASSERT(tqt);
- ASSERT(spin_is_locked(&tq->tq_lock));
list_for_each_prev(l, &tq->tq_active_list) {
w = list_entry(l, taskq_thread_t, tqt_active_list);
@@ -335,8 +330,6 @@ taskq_find_list(taskq_t *tq, struct list_head *lh, taskqid_t id)
struct list_head *l;
taskq_ent_t *t;
- ASSERT(spin_is_locked(&tq->tq_lock));
-
list_for_each(l, lh) {
t = list_entry(l, taskq_ent_t, tqent_list);
@@ -363,8 +356,6 @@ taskq_find(taskq_t *tq, taskqid_t id)
struct list_head *l;
taskq_ent_t *t;
- ASSERT(spin_is_locked(&tq->tq_lock));
-
t = taskq_find_list(tq, &tq->tq_delay_list, id);
if (t)
return (t);
@@ -774,8 +765,6 @@ taskq_next_ent(taskq_t *tq)
{
struct list_head *list;
- ASSERT(spin_is_locked(&tq->tq_lock));
-
if (!list_empty(&tq->tq_prio_list))
list = &tq->tq_prio_list;
else if (!list_empty(&tq->tq_pend_list))
@@ -840,8 +829,6 @@ taskq_thread_spawn(taskq_t *tq)
static int
taskq_thread_should_stop(taskq_t *tq, taskq_thread_t *tqt)
{
- ASSERT(spin_is_locked(&tq->tq_lock));
-
if (!(tq->tq_flags & TASKQ_DYNAMIC))
return (0);
diff --git a/module/spl/spl-tsd.c b/module/spl/spl-tsd.c
index bf82350..4c80029 100644
--- a/module/spl/spl-tsd.c
+++ b/module/spl/spl-tsd.c
@@ -315,7 +315,6 @@ tsd_hash_add_pid(tsd_hash_table_t *table, pid_t pid)
static void
tsd_hash_del(tsd_hash_table_t *table, tsd_hash_entry_t *entry)
{
- ASSERT(spin_is_locked(&table->ht_lock));
hlist_del(&entry->he_list);
list_del_init(&entry->he_key_list);
list_del_init(&entry->he_pid_list);
diff --git a/module/spl/spl-vnode.c b/module/spl/spl-vnode.c
index 77bfb45..a804e10 100644
--- a/module/spl/spl-vnode.c
+++ b/module/spl/spl-vnode.c
@@ -414,8 +414,6 @@ file_find(int fd, struct task_struct *task)
{
file_t *fp;
- ASSERT(spin_is_locked(&vn_file_lock));
-
list_for_each_entry(fp, &vn_file_list, f_list) {
if (fd == fp->f_fd && fp->f_task == task) {
ASSERT(atomic_read(&fp->f_ref) != 0);
--
2.14.2
-189
View File
@@ -1,189 +0,0 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Brian Behlendorf <behlendorf1@llnl.gov>
Date: Wed, 24 Jan 2018 11:33:47 -0800
Subject: [PATCH] Add cv_timedwait_io()
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Add missing helper function cv_timedwait_io(), it should be used
when waiting on IO with a specified timeout.
Reviewed-by: Tim Chase <tim@chase2k.com>
Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Closes #674
(cherry picked from commit ba003d46e3269ead9128b537f8f31c44bc3a974f)
Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
---
include/sys/condvar.h | 2 ++
module/spl/spl-condvar.c | 58 +++++++++++++++++++++++++++++++++++++++++-------
config/spl-build.m4 | 21 ++++++++++++++++++
3 files changed, 73 insertions(+), 8 deletions(-)
diff --git a/include/sys/condvar.h b/include/sys/condvar.h
index 5479e75..5fcc906 100644
--- a/include/sys/condvar.h
+++ b/include/sys/condvar.h
@@ -56,6 +56,7 @@ extern void __cv_wait(kcondvar_t *, kmutex_t *);
extern void __cv_wait_io(kcondvar_t *, kmutex_t *);
extern void __cv_wait_sig(kcondvar_t *, kmutex_t *);
extern clock_t __cv_timedwait(kcondvar_t *, kmutex_t *, clock_t);
+extern clock_t __cv_timedwait_io(kcondvar_t *, kmutex_t *, clock_t);
extern clock_t __cv_timedwait_sig(kcondvar_t *, kmutex_t *, clock_t);
extern clock_t cv_timedwait_hires(kcondvar_t *, kmutex_t *, hrtime_t,
hrtime_t res, int flag);
@@ -71,6 +72,7 @@ extern void __cv_broadcast(kcondvar_t *c);
#define cv_wait_sig(cvp, mp) __cv_wait_sig(cvp, mp)
#define cv_wait_interruptible(cvp, mp) cv_wait_sig(cvp, mp)
#define cv_timedwait(cvp, mp, t) __cv_timedwait(cvp, mp, t)
+#define cv_timedwait_io(cvp, mp, t) __cv_timedwait_io(cvp, mp, t)
#define cv_timedwait_sig(cvp, mp, t) __cv_timedwait_sig(cvp, mp, t)
#define cv_timedwait_interruptible(cvp, mp, t) cv_timedwait_sig(cvp, mp, t)
#define cv_signal(cvp) __cv_signal(cvp)
diff --git a/module/spl/spl-condvar.c b/module/spl/spl-condvar.c
index 80c2ef0..4778fb2 100644
--- a/module/spl/spl-condvar.c
+++ b/module/spl/spl-condvar.c
@@ -136,6 +136,13 @@ __cv_wait(kcondvar_t *cvp, kmutex_t *mp)
}
EXPORT_SYMBOL(__cv_wait);
+void
+__cv_wait_io(kcondvar_t *cvp, kmutex_t *mp)
+{
+ cv_wait_common(cvp, mp, TASK_UNINTERRUPTIBLE, 1);
+}
+EXPORT_SYMBOL(__cv_wait_io);
+
void
__cv_wait_sig(kcondvar_t *cvp, kmutex_t *mp)
{
@@ -143,12 +150,34 @@ __cv_wait_sig(kcondvar_t *cvp, kmutex_t *mp)
}
EXPORT_SYMBOL(__cv_wait_sig);
-void
-__cv_wait_io(kcondvar_t *cvp, kmutex_t *mp)
+#if defined(HAVE_IO_SCHEDULE_TIMEOUT)
+#define spl_io_schedule_timeout(t) io_schedule_timeout(t)
+#else
+static void
+__cv_wakeup(unsigned long data)
{
- cv_wait_common(cvp, mp, TASK_UNINTERRUPTIBLE, 1);
+ wake_up_process((struct task_struct *)data);
}
-EXPORT_SYMBOL(__cv_wait_io);
+
+static long
+spl_io_schedule_timeout(long time_left)
+{
+ long expire_time = jiffies + time_left;
+ struct timer_list timer;
+
+ init_timer(&timer);
+ setup_timer(&timer, __cv_wakeup, (unsigned long)current);
+ timer.expires = expire_time;
+ add_timer(&timer);
+
+ io_schedule();
+
+ del_timer_sync(&timer);
+ time_left = expire_time - jiffies;
+
+ return (time_left < 0 ? 0 : time_left);
+}
+#endif
/*
* 'expire_time' argument is an absolute wall clock time in jiffies.
@@ -156,7 +185,7 @@ EXPORT_SYMBOL(__cv_wait_io);
*/
static clock_t
__cv_timedwait_common(kcondvar_t *cvp, kmutex_t *mp, clock_t expire_time,
- int state)
+ int state, int io)
{
DEFINE_WAIT(wait);
kmutex_t *m;
@@ -188,7 +217,10 @@ __cv_timedwait_common(kcondvar_t *cvp, kmutex_t *mp, clock_t expire_time,
* race where 'cvp->cv_waiters > 0' but the list is empty.
*/
mutex_exit(mp);
- time_left = schedule_timeout(time_left);
+ if (io)
+ time_left = spl_io_schedule_timeout(time_left);
+ else
+ time_left = schedule_timeout(time_left);
/* No more waiters a different mutex could be used */
if (atomic_dec_and_test(&cvp->cv_waiters)) {
@@ -214,14 +246,24 @@ __cv_timedwait_common(kcondvar_t *cvp, kmutex_t *mp, clock_t expire_time,
clock_t
__cv_timedwait(kcondvar_t *cvp, kmutex_t *mp, clock_t exp_time)
{
- return (__cv_timedwait_common(cvp, mp, exp_time, TASK_UNINTERRUPTIBLE));
+ return (__cv_timedwait_common(cvp, mp, exp_time,
+ TASK_UNINTERRUPTIBLE, 0));
}
EXPORT_SYMBOL(__cv_timedwait);
+clock_t
+__cv_timedwait_io(kcondvar_t *cvp, kmutex_t *mp, clock_t exp_time)
+{
+ return (__cv_timedwait_common(cvp, mp, exp_time,
+ TASK_UNINTERRUPTIBLE, 1));
+}
+EXPORT_SYMBOL(__cv_timedwait_io);
+
clock_t
__cv_timedwait_sig(kcondvar_t *cvp, kmutex_t *mp, clock_t exp_time)
{
- return (__cv_timedwait_common(cvp, mp, exp_time, TASK_INTERRUPTIBLE));
+ return (__cv_timedwait_common(cvp, mp, exp_time,
+ TASK_INTERRUPTIBLE, 0));
}
EXPORT_SYMBOL(__cv_timedwait_sig);
diff --git a/config/spl-build.m4 b/config/spl-build.m4
index 926abd5..afc8de6 100644
--- a/config/spl-build.m4
+++ b/config/spl-build.m4
@@ -52,6 +52,7 @@ AC_DEFUN([SPL_AC_CONFIG_KERNEL], [
SPL_AC_KMEM_CACHE_CREATE_USERCOPY
SPL_AC_WAIT_QUEUE_ENTRY_T
SPL_AC_WAIT_QUEUE_HEAD_ENTRY
+ SPL_AC_IO_SCHEDULE_TIMEOUT
SPL_AC_KERNEL_WRITE
SPL_AC_KERNEL_READ
SPL_AC_KERNEL_TIMER_FUNCTION_TIMER_LIST
@@ -1598,6 +1599,26 @@ AC_DEFUN([SPL_AC_WAIT_QUEUE_HEAD_ENTRY], [
])
])
+dnl #
+dnl # 3.19 API change
+dnl # The io_schedule_timeout() function is present in all 2.6.32 kernels
+dnl # but it was not exported until Linux 3.19. The RHEL 7.x kernels which
+dnl # are based on a 3.10 kernel do export this symbol.
+dnl #
+AC_DEFUN([SPL_AC_IO_SCHEDULE_TIMEOUT], [
+ AC_MSG_CHECKING([whether io_schedule_timeout() is available])
+ SPL_LINUX_TRY_COMPILE_SYMBOL([
+ #include <linux/sched.h>
+ ], [
+ (void) io_schedule_timeout(1);
+ ], [io_schedule_timeout], [], [
+ AC_MSG_RESULT(yes)
+ AC_DEFINE(HAVE_IO_SCHEDULE_TIMEOUT, 1, [yes])
+ ],[
+ AC_MSG_RESULT(no)
+ ])
+])
+
dnl #
dnl # 4.14 API change
dnl # kernel_write() which was introduced in 3.9 was updated to take
--
2.14.2
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
@@ -1,48 +0,0 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: DeHackEd <DeHackEd@users.noreply.github.com>
Date: Wed, 21 Feb 2018 17:54:26 -0500
Subject: [PATCH] Fix multiple evaluations of VERIFY() and ASSERT() on failures
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Reviewed-by: loli10K <ezomori.nozomu@gmail.com>
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: DHE <git@dehacked.net>
Closes #684
Closes #685
(cherry picked from commit 610988f2dbf0e1c5811e6115d7ff8948b90a660e)
Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
---
include/sys/debug.h | 15 +++++++++------
1 file changed, 9 insertions(+), 6 deletions(-)
diff --git a/include/sys/debug.h b/include/sys/debug.h
index 6d683c2..b523ea1 100644
--- a/include/sys/debug.h
+++ b/include/sys/debug.h
@@ -63,12 +63,15 @@ void spl_dumpstack(void);
spl_panic(__FILE__, __FUNCTION__, __LINE__, \
"%s", "VERIFY(" #cond ") failed\n"))
-#define VERIFY3_IMPL(LEFT, OP, RIGHT, TYPE, FMT, CAST) \
- (void) ((!((TYPE)(LEFT) OP (TYPE)(RIGHT))) && \
- spl_panic(__FILE__, __FUNCTION__, __LINE__, \
- "VERIFY3(" #LEFT " " #OP " " #RIGHT ") " \
- "failed (" FMT " " #OP " " FMT ")\n", \
- CAST (LEFT), CAST (RIGHT)))
+#define VERIFY3_IMPL(LEFT, OP, RIGHT, TYPE, FMT, CAST) do { \
+ TYPE _verify3_left = (TYPE)(LEFT); \
+ TYPE _verify3_right = (TYPE)(RIGHT); \
+ if (!(_verify3_left OP _verify3_right)) \
+ spl_panic(__FILE__, __FUNCTION__, __LINE__, \
+ "VERIFY3(" #LEFT " " #OP " " #RIGHT ") " \
+ "failed (" FMT " " #OP " " FMT ")\n", \
+ CAST (_verify3_left), CAST (_verify3_right)); \
+ } while (0)
#define VERIFY3B(x,y,z) VERIFY3_IMPL(x, y, z, boolean_t, "%d", (boolean_t))
#define VERIFY3S(x,y,z) VERIFY3_IMPL(x, y, z, int64_t, "%lld", (long long))
--
2.14.2
@@ -1,36 +0,0 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Tomohiro Kusumi <kusumi.tomohiro@osnexus.com>
Date: Mon, 19 Feb 2018 19:23:53 +0900
Subject: [PATCH] Staticize kstat_default_update()
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
This is only used via ->ks_update of `kstat_t *`.
This isn't exported nor do headers have its prototype.
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: Tomohiro Kusumi <kusumi.tomohiro@osnexus.com>
Closes #686
(cherry picked from commit 76ede57c7d927f34fcb5df30c3e7f2b2254ff5ed)
Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
---
module/spl/spl-kstat.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/module/spl/spl-kstat.c b/module/spl/spl-kstat.c
index d2baa49..e769510 100644
--- a/module/spl/spl-kstat.c
+++ b/module/spl/spl-kstat.c
@@ -327,7 +327,7 @@ restart:
return (-rc);
}
-int
+static int
kstat_default_update(kstat_t *ksp, int rw)
{
ASSERT(ksp != NULL);
--
2.14.2
@@ -1,50 +0,0 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Tomohiro Kusumi <kusumi.tomohiro@osnexus.com>
Date: Mon, 19 Feb 2018 20:40:38 +0900
Subject: [PATCH] Fix function name typos
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
vn_init() and vn_fini() had been renamed by 12ff95ff in 2011.
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: Tomohiro Kusumi <kusumi.tomohiro@osnexus.com>
Closes #686
(cherry picked from commit cfbcc0d4d74ea3ad279706b63e7a13290d3e130a)
Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
---
module/spl/spl-vnode.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/module/spl/spl-vnode.c b/module/spl/spl-vnode.c
index 75d8936..23008af 100644
--- a/module/spl/spl-vnode.c
+++ b/module/spl/spl-vnode.c
@@ -658,7 +658,7 @@ vn_file_cache_constructor(void *buf, void *cdrarg, int kmflags)
INIT_LIST_HEAD(&fp->f_list);
return (0);
-} /* file_cache_constructor() */
+} /* vn_file_cache_constructor() */
static void
vn_file_cache_destructor(void *buf, void *cdrarg)
@@ -680,7 +680,7 @@ spl_vn_init(void)
vn_file_cache_destructor, NULL, NULL, NULL, 0);
return (0);
-} /* vn_init() */
+} /* spl_vn_init() */
void
spl_vn_fini(void)
@@ -703,4 +703,4 @@ spl_vn_fini(void)
kmem_cache_destroy(vn_file_cache);
kmem_cache_destroy(vn_cache);
-} /* vn_fini() */
+} /* spl_vn_fini() */
--
2.14.2
@@ -1,391 +0,0 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Brian Behlendorf <behlendorf1@llnl.gov>
Date: Sat, 24 Feb 2018 10:05:37 -0800
Subject: [PATCH] Fix more cstyle warnings
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
This patch contains no functional changes. It is solely intended
to resolve cstyle warnings in order to facilitate moving the spl
source code in to the zfs repository.
Reviewed-by: Giuseppe Di Natale <dinatale2@llnl.gov>
Reviewed by: George Melikov <mail@gmelikov.ru>
Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Closes #687
(cherry picked from commit 37a93c61226f3fd76f6f1e67291128a5d2d6d7c1)
Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
---
module/spl/spl-err.c | 5 ++++-
module/spl/spl-generic.c | 11 ++++++++---
module/spl/spl-kmem-cache.c | 5 ++++-
module/spl/spl-kmem.c | 5 ++++-
module/spl/spl-kstat.c | 17 ++++++++++-------
module/spl/spl-proc.c | 18 ++++++++++--------
module/spl/spl-thread.c | 3 +--
module/spl/spl-vnode.c | 11 +++++------
module/spl/spl-xdr.c | 10 +++++-----
9 files changed, 51 insertions(+), 34 deletions(-)
diff --git a/module/spl/spl-err.c b/module/spl/spl-err.c
index e089de2..adfa555 100644
--- a/module/spl/spl-err.c
+++ b/module/spl/spl-err.c
@@ -34,9 +34,11 @@
* analysis and other such goodies.
* But we would still default to the current default of not to do that.
*/
+/* BEGIN CSTYLED */
unsigned int spl_panic_halt;
module_param(spl_panic_halt, uint, 0644);
MODULE_PARM_DESC(spl_panic_halt, "Cause kernel panic on assertion failures");
+/* END CSTYLED */
/*
* Limit the number of stack traces dumped to not more than 5 every
@@ -55,7 +57,8 @@ spl_dumpstack(void)
EXPORT_SYMBOL(spl_dumpstack);
int
-spl_panic(const char *file, const char *func, int line, const char *fmt, ...) {
+spl_panic(const char *file, const char *func, int line, const char *fmt, ...)
+{
const char *newfile;
char msg[MAXMSGLEN];
va_list ap;
diff --git a/module/spl/spl-generic.c b/module/spl/spl-generic.c
index 80fc54c..1098d9a 100644
--- a/module/spl/spl-generic.c
+++ b/module/spl/spl-generic.c
@@ -50,10 +50,12 @@
char spl_version[32] = "SPL v" SPL_META_VERSION "-" SPL_META_RELEASE;
EXPORT_SYMBOL(spl_version);
+/* BEGIN CSTYLED */
unsigned long spl_hostid = 0;
EXPORT_SYMBOL(spl_hostid);
module_param(spl_hostid, ulong, 0644);
MODULE_PARM_DESC(spl_hostid, "The system hostid.");
+/* END CSTYLED */
proc_t p0;
EXPORT_SYMBOL(p0);
@@ -98,7 +100,8 @@ static DEFINE_PER_CPU(uint64_t[2], spl_pseudo_entropy);
*/
static inline uint64_t
-spl_rand_next(uint64_t *s) {
+spl_rand_next(uint64_t *s)
+{
uint64_t s1 = s[0];
const uint64_t s0 = s[1];
s[0] = s0;
@@ -108,7 +111,8 @@ spl_rand_next(uint64_t *s) {
}
static inline void
-spl_rand_jump(uint64_t *s) {
+spl_rand_jump(uint64_t *s)
+{
static const uint64_t JUMP[] =
{ 0x8a5cd789635d2dff, 0x121fd2155c472f96 };
@@ -184,7 +188,8 @@ EXPORT_SYMBOL(random_get_pseudo_bytes);
* Calculate number of leading of zeros for a 64-bit value.
*/
static int
-nlz64(uint64_t x) {
+nlz64(uint64_t x)
+{
register int n = 0;
if (x == 0)
diff --git a/module/spl/spl-kmem-cache.c b/module/spl/spl-kmem-cache.c
index e4bcdd8..c73a2fd 100644
--- a/module/spl/spl-kmem-cache.c
+++ b/module/spl/spl-kmem-cache.c
@@ -66,6 +66,7 @@
* because it has been shown to improve responsiveness on low memory systems.
* This policy may be changed by setting KMC_EXPIRE_AGE or KMC_EXPIRE_MEM.
*/
+/* BEGIN CSTYLED */
unsigned int spl_kmem_cache_expire = KMC_EXPIRE_MEM;
EXPORT_SYMBOL(spl_kmem_cache_expire);
module_param(spl_kmem_cache_expire, uint, 0644);
@@ -148,6 +149,7 @@ unsigned int spl_kmem_cache_kmem_threads = 4;
module_param(spl_kmem_cache_kmem_threads, uint, 0444);
MODULE_PARM_DESC(spl_kmem_cache_kmem_threads,
"Number of spl_kmem_cache threads");
+/* END CSTYLED */
/*
* Slab allocation interfaces
@@ -356,8 +358,9 @@ out:
if (rc) {
if (skc->skc_flags & KMC_OFFSLAB)
list_for_each_entry_safe(sko,
- n, &sks->sks_free_list, sko_list)
+ n, &sks->sks_free_list, sko_list) {
kv_free(skc, sko->sko_addr, offslab_size);
+ }
kv_free(skc, base, skc->skc_slab_size);
sks = NULL;
diff --git a/module/spl/spl-kmem.c b/module/spl/spl-kmem.c
index bf9c6b1..e0d5510 100755
--- a/module/spl/spl-kmem.c
+++ b/module/spl/spl-kmem.c
@@ -44,6 +44,7 @@
* allocations are quickly caught. These warnings may be disabled by setting
* the threshold to zero.
*/
+/* BEGIN CSTYLED */
unsigned int spl_kmem_alloc_warn = MIN(16 * PAGE_SIZE, 64 * 1024);
module_param(spl_kmem_alloc_warn, uint, 0644);
MODULE_PARM_DESC(spl_kmem_alloc_warn,
@@ -64,6 +65,7 @@ module_param(spl_kmem_alloc_max, uint, 0644);
MODULE_PARM_DESC(spl_kmem_alloc_max,
"Maximum size in bytes for a kmem_alloc()");
EXPORT_SYMBOL(spl_kmem_alloc_max);
+/* END CSTYLED */
int
kmem_debugging(void)
@@ -520,10 +522,11 @@ spl_kmem_fini_tracking(struct list_head *list, spinlock_t *lock)
printk(KERN_WARNING "%-16s %-5s %-16s %s:%s\n", "address",
"size", "data", "func", "line");
- list_for_each_entry(kd, list, kd_list)
+ list_for_each_entry(kd, list, kd_list) {
printk(KERN_WARNING "%p %-5d %-16s %s:%d\n", kd->kd_addr,
(int)kd->kd_size, spl_sprintf_addr(kd, str, 17, 8),
kd->kd_func, kd->kd_line);
+ }
spin_unlock_irqrestore(lock, flags);
}
diff --git a/module/spl/spl-kstat.c b/module/spl/spl-kstat.c
index e769510..6970fcc 100644
--- a/module/spl/spl-kstat.c
+++ b/module/spl/spl-kstat.c
@@ -305,7 +305,7 @@ restart:
} else {
ASSERT(ksp->ks_ndata == 1);
rc = kstat_seq_show_raw(f, ksp->ks_data,
- ksp->ks_data_size);
+ ksp->ks_data_size);
}
break;
case KSTAT_TYPE_NAMED:
@@ -434,9 +434,10 @@ kstat_find_module(char *name)
{
kstat_module_t *module;
- list_for_each_entry(module, &kstat_module_list, ksm_module_list)
+ list_for_each_entry(module, &kstat_module_list, ksm_module_list) {
if (strncmp(name, module->ksm_name, KSTAT_STRLEN) == 0)
return (module);
+ }
return (NULL);
}
@@ -517,9 +518,9 @@ static struct file_operations proc_kstat_operations = {
void
__kstat_set_raw_ops(kstat_t *ksp,
- int (*headers)(char *buf, size_t size),
- int (*data)(char *buf, size_t size, void *data),
- void *(*addr)(kstat_t *ksp, loff_t index))
+ int (*headers)(char *buf, size_t size),
+ int (*data)(char *buf, size_t size, void *data),
+ void *(*addr)(kstat_t *ksp, loff_t index))
{
ksp->ks_raw_ops.headers = headers;
ksp->ks_raw_ops.data = data;
@@ -628,11 +629,12 @@ kstat_detect_collision(kstat_t *ksp)
cp[0] = '\0';
if ((module = kstat_find_module(parent)) != NULL) {
- list_for_each_entry(tmp, &module->ksm_kstat_list, ks_list)
+ list_for_each_entry(tmp, &module->ksm_kstat_list, ks_list) {
if (strncmp(tmp->ks_name, cp+1, KSTAT_STRLEN) == 0) {
strfree(parent);
return (EEXIST);
}
+ }
}
strfree(parent);
@@ -665,9 +667,10 @@ __kstat_install(kstat_t *ksp)
* Only one entry by this name per-module, on failure the module
* shouldn't be deleted because we know it has at least one entry.
*/
- list_for_each_entry(tmp, &module->ksm_kstat_list, ks_list)
+ list_for_each_entry(tmp, &module->ksm_kstat_list, ks_list) {
if (strncmp(tmp->ks_name, ksp->ks_name, KSTAT_STRLEN) == 0)
goto out;
+ }
list_add_tail(&ksp->ks_list, &module->ksm_kstat_list);
diff --git a/module/spl/spl-proc.c b/module/spl/spl-proc.c
index 60d6bbb..8ce5bbe 100644
--- a/module/spl/spl-proc.c
+++ b/module/spl/spl-proc.c
@@ -85,8 +85,8 @@ proc_copyin_string(char *kbuffer, int kbuffer_size, const char *ubuffer,
}
static int
-proc_copyout_string(char *ubuffer, int ubuffer_size,
- const char *kbuffer, char *append)
+proc_copyout_string(char *ubuffer, int ubuffer_size, const char *kbuffer,
+ char *append)
{
/*
* NB if 'append' != NULL, it's a single character to append to the
@@ -239,9 +239,11 @@ taskq_seq_show_headers(struct seq_file *f)
#define LHEAD_ACTIVE 4
#define LHEAD_SIZE 5
+/* BEGIN CSTYLED */
static unsigned int spl_max_show_tasks = 512;
module_param(spl_max_show_tasks, uint, 0644);
MODULE_PARM_DESC(spl_max_show_tasks, "Max number of tasks shown in taskq proc");
+/* END CSTYLED */
static int
taskq_seq_show_impl(struct seq_file *f, void *p, boolean_t allflag)
@@ -719,15 +721,15 @@ spl_proc_init(void)
goto out;
}
- proc_spl_taskq_all = proc_create_data("taskq-all", 0444,
- proc_spl, &proc_taskq_all_operations, NULL);
+ proc_spl_taskq_all = proc_create_data("taskq-all", 0444, proc_spl,
+ &proc_taskq_all_operations, NULL);
if (proc_spl_taskq_all == NULL) {
rc = -EUNATCH;
goto out;
}
- proc_spl_taskq = proc_create_data("taskq", 0444,
- proc_spl, &proc_taskq_operations, NULL);
+ proc_spl_taskq = proc_create_data("taskq", 0444, proc_spl,
+ &proc_taskq_operations, NULL);
if (proc_spl_taskq == NULL) {
rc = -EUNATCH;
goto out;
@@ -739,8 +741,8 @@ spl_proc_init(void)
goto out;
}
- proc_spl_kmem_slab = proc_create_data("slab", 0444,
- proc_spl_kmem, &proc_slab_operations, NULL);
+ proc_spl_kmem_slab = proc_create_data("slab", 0444, proc_spl_kmem,
+ &proc_slab_operations, NULL);
if (proc_spl_kmem_slab == NULL) {
rc = -EUNATCH;
goto out;
diff --git a/module/spl/spl-thread.c b/module/spl/spl-thread.c
index 357d0ca..6f640fd 100644
--- a/module/spl/spl-thread.c
+++ b/module/spl/spl-thread.c
@@ -79,8 +79,7 @@ EXPORT_SYMBOL(__thread_exit);
*/
kthread_t *
__thread_create(caddr_t stk, size_t stksize, thread_func_t func,
- const char *name, void *args, size_t len, proc_t *pp,
- int state, pri_t pri)
+ const char *name, void *args, size_t len, proc_t *pp, int state, pri_t pri)
{
thread_priv_t *tp;
struct task_struct *tsk;
diff --git a/module/spl/spl-vnode.c b/module/spl/spl-vnode.c
index 23008af..74ae8fe 100644
--- a/module/spl/spl-vnode.c
+++ b/module/spl/spl-vnode.c
@@ -118,8 +118,8 @@ vn_free(vnode_t *vp)
EXPORT_SYMBOL(vn_free);
int
-vn_open(const char *path, uio_seg_t seg, int flags, int mode,
- vnode_t **vpp, int x1, void *x2)
+vn_open(const char *path, uio_seg_t seg, int flags, int mode, vnode_t **vpp,
+ int x1, void *x2)
{
struct file *fp;
struct kstat stat;
@@ -210,7 +210,7 @@ EXPORT_SYMBOL(vn_openat);
int
vn_rdwr(uio_rw_t uio, vnode_t *vp, void *addr, ssize_t len, offset_t off,
- uio_seg_t seg, int ioflag, rlim64_t x2, void *x3, ssize_t *residp)
+ uio_seg_t seg, int ioflag, rlim64_t x2, void *x3, ssize_t *residp)
{
struct file *fp = vp->v_file;
loff_t offset = off;
@@ -401,9 +401,8 @@ int vn_space(vnode_t *vp, int cmd, struct flock *bfp, int flag,
--end;
vp->v_file->f_dentry->d_inode->i_op->truncate_range(
- vp->v_file->f_dentry->d_inode,
- bfp->l_start, end
- );
+ vp->v_file->f_dentry->d_inode, bfp->l_start, end);
+
return (0);
}
#endif
diff --git a/module/spl/spl-xdr.c b/module/spl/spl-xdr.c
index 7c166e9..456887e 100644
--- a/module/spl/spl-xdr.c
+++ b/module/spl/spl-xdr.c
@@ -160,7 +160,7 @@ EXPORT_SYMBOL(xdrmem_create);
static bool_t
xdrmem_control(XDR *xdrs, int req, void *info)
{
- struct xdr_bytesrec *rec = (struct xdr_bytesrec *) info;
+ struct xdr_bytesrec *rec = (struct xdr_bytesrec *)info;
if (req != XDR_GET_BYTES_AVAIL)
return (FALSE);
@@ -236,7 +236,7 @@ xdrmem_enc_uint32(XDR *xdrs, uint32_t val)
if (xdrs->x_addr + sizeof (uint32_t) > xdrs->x_addr_end)
return (FALSE);
- *((uint32_t *) xdrs->x_addr) = cpu_to_be32(val);
+ *((uint32_t *)xdrs->x_addr) = cpu_to_be32(val);
xdrs->x_addr += sizeof (uint32_t);
@@ -249,7 +249,7 @@ xdrmem_dec_uint32(XDR *xdrs, uint32_t *val)
if (xdrs->x_addr + sizeof (uint32_t) > xdrs->x_addr_end)
return (FALSE);
- *val = be32_to_cpu(*((uint32_t *) xdrs->x_addr));
+ *val = be32_to_cpu(*((uint32_t *)xdrs->x_addr));
xdrs->x_addr += sizeof (uint32_t);
@@ -333,7 +333,7 @@ xdrmem_dec_uint(XDR *xdrs, unsigned *up)
{
BUILD_BUG_ON(sizeof (unsigned) != 4);
- return (xdrmem_dec_uint32(xdrs, (uint32_t *) up));
+ return (xdrmem_dec_uint32(xdrs, (uint32_t *)up));
}
static bool_t
@@ -359,7 +359,7 @@ xdrmem_dec_ulonglong(XDR *xdrs, u_longlong_t *ullp)
if (!xdrmem_dec_uint32(xdrs, &low))
return (FALSE);
- *ullp = ((u_longlong_t) high << 32) | low;
+ *ullp = ((u_longlong_t)high << 32) | low;
return (TRUE);
}
--
2.14.2
@@ -1,38 +0,0 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: LOLi <loli10K@users.noreply.github.com>
Date: Fri, 9 Mar 2018 22:51:31 +0100
Subject: [PATCH] Fix spl-kmod builds when using rpm >= 4.14
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
With rpm-software-management/rpm@5e94633 a package version containing
invalid characters (most commonly a double '-') causes the kmod package
generation to terminate with an error. This change takes advantage of
the newly introduced rpm macro "_wrong_version_format_terminate_build"
to allow kmod packages to be built.
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: loli10K <ezomori.nozomu@gmail.com>
Closes #691
(cherry picked from commit 7d17023a33bb6f064e013dd99862e62b719f1e26)
Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
---
config/spl-build.m4 | 1 +
1 file changed, 1 insertion(+)
diff --git a/config/spl-build.m4 b/config/spl-build.m4
index 553b5d5..9c97e64 100644
--- a/config/spl-build.m4
+++ b/config/spl-build.m4
@@ -231,6 +231,7 @@ AC_DEFUN([SPL_AC_RPM], [
RPM_DEFINE_COMMON='--define "$(DEBUG_SPL) 1" --define "$(DEBUG_KMEM) 1" --define "$(DEBUG_KMEM_TRACKING) 1"'
RPM_DEFINE_UTIL=
RPM_DEFINE_KMOD='--define "kernels $(LINUX_VERSION)"'
+ RPM_DEFINE_KMOD+=' --define "_wrong_version_format_terminate_build 0"'
RPM_DEFINE_DKMS=
SRPM_DEFINE_COMMON='--define "build_src_rpm 1"'
--
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: Wed, 14 Mar 2018 16:16:00 -0700
Subject: [PATCH] Tag spl-0.7.7
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 2f52bf4a84b1a3520cccd5cee1415ce85b91d04f)
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 eb38c21..6af292d 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
+* Wed Mar 14 2018 Tony Hutter <hutter2@llnl.gov> - 0.7.7-1
+- Released 0.7.7-1, detailed release notes are available at:
+- https://github.com/zfsonlinux/zfs/releases/tag/zfs-0.7.7
* 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
diff --git a/rpm/generic/spl.spec.in b/rpm/generic/spl.spec.in
index 0338a47..b693bdc 100644
--- a/rpm/generic/spl.spec.in
+++ b/rpm/generic/spl.spec.in
@@ -34,6 +34,9 @@ make install DESTDIR=%{?buildroot}
%{_mandir}/man5/*
%changelog
+* Wed Mar 14 2018 Tony Hutter <hutter2@llnl.gov> - 0.7.7-1
+- Released 0.7.7-1, detailed release notes are available at:
+- https://github.com/zfsonlinux/zfs/releases/tag/zfs-0.7.7
* 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
diff --git a/META b/META
index 4b0c0bb..64a07f1 100644
--- a/META
+++ b/META
@@ -1,7 +1,7 @@
Meta: 1
Name: spl
Branch: 1.0
-Version: 0.7.6
+Version: 0.7.7
Release: 1
Release-Tags: relext
License: GPL
--
2.14.2
-13
View File
@@ -1,13 +0,0 @@
0001-remove-DKMS-and-module-build.patch
0002-Allow-longer-SPA-names-in-stats.patch
0003-Remove-vn_rename-and-vn_remove.patch
0004-Remove-all-spin_is_locked-calls.patch
0005-Add-cv_timedwait_io.patch
0006-Fix-cstyle-warnings.patch
0007-Split-spl-build.m4.patch
0008-Fix-multiple-evaluations-of-VERIFY-and-ASSERT-on-fai.patch
0009-Staticize-kstat_default_update.patch
0010-Fix-function-name-typos.patch
0011-Fix-more-cstyle-warnings.patch
0012-Fix-spl-kmod-builds-when-using-rpm-4.14.patch
0013-Tag-spl-0.7.7.patch
Submodule
+1
Submodule upstream added at ad81baab77
-227
View File
@@ -1,227 +0,0 @@
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
Submodule zfs-debian deleted from 751356d354
@@ -1,282 +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 | 41 ++------------------
debian/control | 1 -
debian/not-installed | 2 +
debian/rules | 105 +--------------------------------------------------
4 files changed, 7 insertions(+), 142 deletions(-)
diff --git a/debian/control.in b/debian/control.in
index aef8cac2e..3cc15a05b 100644
--- a/debian/control.in
+++ b/debian/control.in
@@ -9,7 +9,6 @@ Build-Depends: autotools-dev,
debhelper (>= 10.2),
dh-autoreconf,
dh-python,
- dkms (>> 2.1.1.2-5),
libattr1-dev,
libblkid-dev,
libselinux1-dev,
@@ -86,27 +85,10 @@ 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: zfs-zed, zfsutils-linux (>= ${binary:Version}),
- @LINUX_COMPAT@
-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: busybox-initramfs | busybox-static | busybox,
initramfs-tools,
- zfs-modules | zfs-dkms,
zfsutils-linux (>= ${binary:Version}),
${misc:Depends}
Description: OpenZFS root filesystem capabilities for Linux - initramfs
@@ -117,29 +99,14 @@ 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: python3, ${misc:Depends}, ${python3:Depends}, ${shlibs:Depends}
-Recommends: lsb-base, zfs-modules | zfs-dkms, zfs-zed
-Breaks: zfs-dkms (<< ${binary:Version}), zfs-dkms (>> ${binary:Version})
+Recommends: lsb-base, zfs-zed
Suggests: nfs-kernel-server,
samba-common-bin (>= 3.0.23),
- zfs-initramfs | zfs-dracut
+ zfs-initramfs
Conflicts: zfs, zfs-fuse, zutils
Provides: zfsutils
Description: command-line tools to manage OpenZFS filesystems
@@ -153,8 +120,7 @@ Description: command-line tools to manage OpenZFS filesystems
Package: zfs-zed
Section: contrib/admin
Architecture: linux-any
-Depends: zfs-modules | zfs-dkms,
- zfsutils-linux (>= ${binary:Version}),
+Depends: zfsutils-linux (>= ${binary:Version}),
${misc:Depends},
${shlibs:Depends}
Description: OpenZFS Event Daemon
@@ -177,7 +143,6 @@ Depends: acl,
python,
sudo,
sysstat,
- zfs-modules | zfs-dkms,
zfsutils-linux (>=${binary:Version}),
${misc:Depends},
${shlibs:Depends}
diff --git a/debian/control b/debian/control
index 3cf6fb649..51cfe6a64 100644
--- a/debian/control
+++ b/debian/control
@@ -9,7 +9,6 @@ Build-Depends: autotools-dev,
debhelper (>= 10.2),
dh-autoreconf,
dh-python,
- dkms (>> 2.1.1.2-5),
libattr1-dev,
libblkid-dev,
libselinux1-dev,
diff --git a/debian/not-installed b/debian/not-installed
index f54fe7310..c3929d90e 100644
--- a/debian/not-installed
+++ b/debian/not-installed
@@ -5,3 +5,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
+usr/lib/dracut
+usr/share/zfs/enum-extract.pl
diff --git a/debian/rules b/debian/rules
index cc47a74a1..a5c37c81d 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:
sed "s/@LINUX_COMPAT@/linux-libc-dev \(< $(shell debian/get_next.sh)\)/" 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,89 +0,0 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Richard Yao <richard.yao@clusterhq.com>
Date: Tue, 23 Sep 2014 13:31:33 -0400
Subject: [PATCH] Make --enable-debug fail when given bogus args
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Currently, bogus options to --enable-debug become --disable-debug. That
means that passing --enable-debug=true is analogous to --disable-debug,
but the result is counterintuitive. We switch to AS_CASE to allow us to
fail when given a bogus option.
Also, we modify the text printed to clarify that --enable-debug enables
assertions.
Reviewed-by: Chunwei Chen <tuxoko@gmail.com>
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: Richard Yao <richard.yao@clusterhq.com>
Closes #2734
(cherry picked from commit 0f1ff38476ba255eb1f066f675c8721168ff2295)
Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
---
config/zfs-build.m4 | 43 +++++++++++++++++++++++++------------------
1 file changed, 25 insertions(+), 18 deletions(-)
diff --git a/config/zfs-build.m4 b/config/zfs-build.m4
index 7651dc2c1..78a87aef7 100644
--- a/config/zfs-build.m4
+++ b/config/zfs-build.m4
@@ -6,30 +6,37 @@ AC_DEFUN([ZFS_AC_LICENSE], [
AC_MSG_RESULT([$ZFS_META_LICENSE])
])
+AC_DEFUN([ZFS_AC_DEBUG_ENABLE], [
+ KERNELCPPFLAGS="${KERNELCPPFLAGS} -DDEBUG -Werror"
+ HOSTCFLAGS="${HOSTCFLAGS} -DDEBUG -Werror"
+ DEBUG_CFLAGS="-DDEBUG -Werror"
+ DEBUG_STACKFLAGS="-fstack-check"
+ DEBUG_ZFS="_with_debug"
+ AC_DEFINE(ZFS_DEBUG, 1, [zfs debugging enabled])
+])
+
+AC_DEFUN([ZFS_AC_DEBUG_DISABLE], [
+ KERNELCPPFLAGS="${KERNELCPPFLAGS} -DNDEBUG "
+ HOSTCFLAGS="${HOSTCFLAGS} -DNDEBUG "
+ DEBUG_CFLAGS="-DNDEBUG"
+ DEBUG_STACKFLAGS=""
+ DEBUG_ZFS="_without_debug"
+])
+
AC_DEFUN([ZFS_AC_DEBUG], [
- AC_MSG_CHECKING([whether debugging is enabled])
+ AC_MSG_CHECKING([whether assertion support will be enabled])
AC_ARG_ENABLE([debug],
[AS_HELP_STRING([--enable-debug],
- [Enable generic debug support @<:@default=no@:>@])],
+ [Enable assertion support @<:@default=no@:>@])],
[],
[enable_debug=no])
- AS_IF([test "x$enable_debug" = xyes],
- [
- KERNELCPPFLAGS="${KERNELCPPFLAGS} -DDEBUG -Werror"
- HOSTCFLAGS="${HOSTCFLAGS} -DDEBUG -Werror"
- DEBUG_CFLAGS="-DDEBUG -Werror"
- DEBUG_STACKFLAGS="-fstack-check"
- DEBUG_ZFS="_with_debug"
- AC_DEFINE(ZFS_DEBUG, 1, [zfs debugging enabled])
- ],
- [
- KERNELCPPFLAGS="${KERNELCPPFLAGS} -DNDEBUG "
- HOSTCFLAGS="${HOSTCFLAGS} -DNDEBUG "
- DEBUG_CFLAGS="-DNDEBUG"
- DEBUG_STACKFLAGS=""
- DEBUG_ZFS="_without_debug"
- ])
+ AS_CASE(["x$enable_debug"],
+ ["xyes"],
+ [ZFS_AC_DEBUG_ENABLE],
+ ["xno"],
+ [ZFS_AC_DEBUG_DISABLE],
+ [AC_MSG_ERROR([Unknown option $enable_debug])])
AC_SUBST(DEBUG_CFLAGS)
AC_SUBST(DEBUG_STACKFLAGS)
--
2.14.2
@@ -1,122 +0,0 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Richard Yao <richard.yao@clusterhq.com>
Date: Tue, 23 Sep 2014 14:29:30 -0400
Subject: [PATCH] Implement --enable-debuginfo to force debuginfo
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Inspection of a Ubuntu 14.04 x64 system revealed that the config file
used to build the kernel image differs from the config file used to
build kernel modules by the presence of CONFIG_DEBUG_INFO=y:
This in itself is insufficient to show that the kernel is built with
debuginfo, but a cursory analysis of the debuginfo provided and the
size of the kernel strongly suggests that it was built with
CONFIG_DEBUG_INFO=y while the modules were not. Installing
linux-image-$(uname -r)-dbgsym had no obvious effect on the debuginfo
provided by either the modules or the kernel.
The consequence is that issue reports from distributions such as Ubuntu
and its derivatives build kernel modules without debuginfo contain
nonsensical backtraces. It is therefore desireable to force generation
of debuginfo, so we implement --enable-debuginfo. Since the build system
can build both userspace components and kernel modules, the generic
--enable-debuginfo option will force debuginfo for both. However, it
also supports --enable-debuginfo=kernel and --enable-debuginfo=user for
finer grained control.
Enabling debuginfo for the kernel modules works by injecting
CONFIG_DEBUG_INFO=y into the make environment. This is enables
generation of debuginfo by the kernel build systems on all Linux
kernels, but the build environment is slightly different int hat
CONFIG_DEBUG_INFO has not been in the CPP. Adding -DCONFIG_DEBUG_INFO
would fix that, but it would also cause build failures on kernels where
CONFIG_DEBUG_INFO=y is already set. That would complicate its use in
DKMS environments that support a range of kernels and is therefore
undesireable. We could write a compatibility shim to enable
CONFIG_DEBUG_INFO only when it is explicitly disabled, but we forgo
doing that because it is unnecessary. Nothing in ZoL or the kernel uses
CONFIG_DEBUG_INFO in the CPP at this time and that is unlikely to
change.
Enabling debuginfo for the userspace components is done by injecting -g
into CPPFLAGS. This is not necessary because the build system honors the
environment's CPPFLAGS by appending them to the actual CPPFLAGS used,
but it is supported for consistency.
Reviewed-by: Chunwei Chen <tuxoko@gmail.com>
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: Richard Yao <richard.yao@clusterhq.com>
Closes #2734
(cherry picked from commit 834815e9f767c9c5e7220ff84f29b1f069822a4d)
Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
---
configure.ac | 1 +
config/zfs-build.m4 | 33 ++++++++++++++++++++++++++++++++-
2 files changed, 33 insertions(+), 1 deletion(-)
diff --git a/configure.ac b/configure.ac
index 0c7977ef8..e145aa370 100644
--- a/configure.ac
+++ b/configure.ac
@@ -55,6 +55,7 @@ ZFS_AC_LICENSE
ZFS_AC_PACKAGE
ZFS_AC_CONFIG
ZFS_AC_DEBUG
+ZFS_AC_DEBUGINFO
AC_CONFIG_FILES([
Makefile
diff --git a/config/zfs-build.m4 b/config/zfs-build.m4
index 78a87aef7..a8609b829 100644
--- a/config/zfs-build.m4
+++ b/config/zfs-build.m4
@@ -38,12 +38,43 @@ AC_DEFUN([ZFS_AC_DEBUG], [
[ZFS_AC_DEBUG_DISABLE],
[AC_MSG_ERROR([Unknown option $enable_debug])])
- AC_SUBST(DEBUG_CFLAGS)
AC_SUBST(DEBUG_STACKFLAGS)
AC_SUBST(DEBUG_ZFS)
AC_MSG_RESULT([$enable_debug])
])
+AC_DEFUN([ZFS_AC_DEBUGINFO_KERNEL], [
+ KERNELMAKE_PARAMS="$KERNELMAKE_PARAMS CONFIG_DEBUG_INFO=y"
+])
+
+AC_DEFUN([ZFS_AC_DEBUGINFO_USER], [
+ DEBUG_CFLAGS="$DEBUG_CFLAGS -g"
+])
+
+AC_DEFUN([ZFS_AC_DEBUGINFO], [
+ AC_MSG_CHECKING([whether debuginfo support will be forced])
+ AC_ARG_ENABLE([debuginfo],
+ [AS_HELP_STRING([--enable-debuginfo],
+ [Force generation of debuginfo @<:@default=no@:>@])],
+ [],
+ [enable_debuginfo=no])
+
+ AS_CASE(["x$enable_debuginfo"],
+ ["xyes"],
+ [ZFS_AC_DEBUGINFO_KERNEL
+ ZFS_AC_DEBUGINFO_USER],
+ ["xkernel"],
+ [ZFS_AC_DEBUGINFO_KERNEL],
+ ["xuser"],
+ [ZFS_AC_DEBUGINFO_USER],
+ ["xno"],
+ [],
+ [AC_MSG_ERROR([Unknown option $enable_debug])])
+
+ AC_SUBST(DEBUG_CFLAGS)
+ AC_MSG_RESULT([$enable_debuginfo])
+])
+
AC_DEFUN([ZFS_AC_CONFIG_ALWAYS], [
ZFS_AC_CONFIG_ALWAYS_NO_UNUSED_BUT_SET_VARIABLE
ZFS_AC_CONFIG_ALWAYS_NO_BOOL_COMPARE
--
2.14.2
@@ -1,121 +0,0 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Brian Behlendorf <behlendorf1@llnl.gov>
Date: Fri, 15 Sep 2017 10:24:13 -0700
Subject: [PATCH] Add configure option to enable gcov analysis
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
* Add configure option to enable gcov analysis.
* Includes a few minor ctime fixes.
* Add codecov.yml configuration.
Reviewed-by: Prakash Surya <prakash.surya@delphix.com>
Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Closes #6642
(cherry picked from commit 184087f822ef178d6f5c155681ee7c3d90f23321)
Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
---
configure.ac | 1 +
Makefile.am | 8 +++---
.github/codecov.yml | 9 +++++++
config/zfs-build.m4 | 31 ++++++++++++++++++++++
.../tests/functional/ctime/ctime_001_pos.ksh | 0
5 files changed, 45 insertions(+), 4 deletions(-)
create mode 100644 .github/codecov.yml
mode change 100644 => 100755 tests/zfs-tests/tests/functional/ctime/ctime_001_pos.ksh
diff --git a/configure.ac b/configure.ac
index e145aa370..ee754fd38 100644
--- a/configure.ac
+++ b/configure.ac
@@ -56,6 +56,7 @@ ZFS_AC_PACKAGE
ZFS_AC_CONFIG
ZFS_AC_DEBUG
ZFS_AC_DEBUGINFO
+ZFS_AC_GCOV
AC_CONFIG_FILES([
Makefile
diff --git a/Makefile.am b/Makefile.am
index 508d3f40e..732a373bd 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -29,10 +29,10 @@ distclean-local::
-o -name .pc -o -name .hg -o -name .git \) -prune -o \
\( -name '*.orig' -o -name '*.rej' -o -name '*~' \
-o -name '*.bak' -o -name '#*#' -o -name '.*.orig' \
- -o -name '.*.rej' -o -name '.script-config' -o -size 0 \
- -o -name '*%' -o -name '.*.cmd' -o -name 'core' \
- -o -name 'Makefile' -o -name 'Module.symvers' \
- -o -name '*.order' -o -name '*.markers' \) \
+ -o -name '.*.rej' -o -size 0 -o -name '*%' -o -name '.*.cmd' \
+ -o -name 'core' -o -name 'Makefile' -o -name 'Module.symvers' \
+ -o -name '*.order' -o -name '*.markers' -o -name '*.gcda' \
+ -o -name '*.gcno' \) \
-type f -print | xargs $(RM)
dist-hook:
diff --git a/.github/codecov.yml b/.github/codecov.yml
new file mode 100644
index 000000000..f36be39cb
--- /dev/null
+++ b/.github/codecov.yml
@@ -0,0 +1,9 @@
+codecov:
+ strict_yaml_branch: master # only use the latest copy on master branch
+
+comment: off
+
+coverage:
+ status:
+ project: off
+ patch: off
diff --git a/config/zfs-build.m4 b/config/zfs-build.m4
index a8609b829..b84658a64 100644
--- a/config/zfs-build.m4
+++ b/config/zfs-build.m4
@@ -75,6 +75,37 @@ AC_DEFUN([ZFS_AC_DEBUGINFO], [
AC_MSG_RESULT([$enable_debuginfo])
])
+AC_DEFUN([ZFS_AC_GCOV_KERNEL], [
+])
+
+AC_DEFUN([ZFS_AC_GCOV_USER], [
+ DEBUG_CFLAGS="$DEBUG_CFLAGS -fprofile-arcs -ftest-coverage"
+])
+
+AC_DEFUN([ZFS_AC_GCOV], [
+ AC_MSG_CHECKING([whether gcov profiling will be enabled])
+ AC_ARG_ENABLE([gcov],
+ [AS_HELP_STRING([--enable-gcov],
+ [Enable gcov profiling @<:@default=no@:>@])],
+ [],
+ [enable_gcov=no])
+
+ AS_CASE(["x$enable_gcov"],
+ ["xyes"],
+ [ZFS_AC_GCOV_KERNEL
+ ZFS_AC_GCOV_USER],
+ ["xkernel"],
+ [ZFS_AC_GCOV_KERNEL],
+ ["xuser"],
+ [ZFS_AC_GCOV_USER],
+ ["xno"],
+ [],
+ [AC_MSG_ERROR([Unknown option $enable_gcov])])
+
+ AC_SUBST(DEBUG_CFLAGS)
+ AC_MSG_RESULT([$enable_gcov])
+])
+
AC_DEFUN([ZFS_AC_CONFIG_ALWAYS], [
ZFS_AC_CONFIG_ALWAYS_NO_UNUSED_BUT_SET_VARIABLE
ZFS_AC_CONFIG_ALWAYS_NO_BOOL_COMPARE
diff --git a/tests/zfs-tests/tests/functional/ctime/ctime_001_pos.ksh b/tests/zfs-tests/tests/functional/ctime/ctime_001_pos.ksh
old mode 100644
new mode 100755
--
2.14.2
@@ -1,43 +0,0 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Prakash Surya <prakash.surya@delphix.com>
Date: Fri, 15 Sep 2017 11:47:11 -0700
Subject: [PATCH] Make "-fno-inline" compile option more accessible
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
When functions are inlined, it can make the system much more difficult
to instrument using tools such as ftrace, BPF, crash, etc. Thus, to aid
development and increase the system's observability, when the
"--enable-debuginfo" flag is specified, the "-fno-inline" compilation
option will be used for both userspace and kernel modules.
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: Prakash Surya <prakash.surya@delphix.com>
Closes #6605
(cherry picked from commit f1236ebf35d1531db75ac8a57b23e8fe48d6b780)
Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
---
config/zfs-build.m4 | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/config/zfs-build.m4 b/config/zfs-build.m4
index b84658a64..c695a882e 100644
--- a/config/zfs-build.m4
+++ b/config/zfs-build.m4
@@ -45,10 +45,11 @@ AC_DEFUN([ZFS_AC_DEBUG], [
AC_DEFUN([ZFS_AC_DEBUGINFO_KERNEL], [
KERNELMAKE_PARAMS="$KERNELMAKE_PARAMS CONFIG_DEBUG_INFO=y"
+ KERNELCPPFLAGS="${KERNELCPPFLAGS} -fno-inline"
])
AC_DEFUN([ZFS_AC_DEBUGINFO_USER], [
- DEBUG_CFLAGS="$DEBUG_CFLAGS -g"
+ DEBUG_CFLAGS="${DEBUG_CFLAGS} -g -fno-inline"
])
AC_DEFUN([ZFS_AC_DEBUGINFO], [
--
2.14.2
@@ -1,399 +0,0 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Prakash Surya <prakash.surya@delphix.com>
Date: Fri, 22 Sep 2017 18:49:57 -0700
Subject: [PATCH] Add support for "--enable-code-coverage" option
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
This change adds support for a new option that can be passed to the
configure script: "--enable-code-coverage". Further, the "--enable-gcov"
option has been removed, as this new option provides the same
functionality (plus more).
When using this new option the following make targets are available:
* check-code-coverage
* code-coverage-capture
* code-coverage-clean
Note: these make targets can only be run from the root of the project.
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: Prakash Surya <prakash.surya@delphix.com>
Closes #6670
(cherry picked from commit 6b278f3223c0322527836da2e11e33978e54a234)
Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
---
configure.ac | 2 +-
Makefile.am | 2 +
config/Rules.am | 2 +
config/ax_code_coverage.m4 | 264 +++++++++++++++++++++++++++++++++++++++++++++
config/zfs-build.m4 | 31 ------
5 files changed, 269 insertions(+), 32 deletions(-)
create mode 100644 config/ax_code_coverage.m4
diff --git a/configure.ac b/configure.ac
index ee754fd38..d71712e4c 100644
--- a/configure.ac
+++ b/configure.ac
@@ -50,13 +50,13 @@ AC_PROG_CC
AC_PROG_LIBTOOL
AM_PROG_AS
AM_PROG_CC_C_O
+AX_CODE_COVERAGE
ZFS_AC_LICENSE
ZFS_AC_PACKAGE
ZFS_AC_CONFIG
ZFS_AC_DEBUG
ZFS_AC_DEBUGINFO
-ZFS_AC_GCOV
AC_CONFIG_FILES([
Makefile
diff --git a/Makefile.am b/Makefile.am
index 732a373bd..b539ff30f 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -23,6 +23,8 @@ EXTRA_DIST = autogen.sh copy-builtin
EXTRA_DIST += config/config.awk config/rpm.am config/deb.am config/tgz.am
EXTRA_DIST += META DISCLAIMER COPYRIGHT README.markdown OPENSOLARIS.LICENSE
+@CODE_COVERAGE_RULES@
+
distclean-local::
-$(RM) -R autom4te*.cache
-find . \( -name SCCS -o -name BitKeeper -o -name .svn -o -name CVS \
diff --git a/config/Rules.am b/config/Rules.am
index 1d39e7779..215f09c34 100644
--- a/config/Rules.am
+++ b/config/Rules.am
@@ -6,6 +6,7 @@ AM_CFLAGS += ${NO_UNUSED_BUT_SET_VARIABLE}
AM_CFLAGS += ${NO_BOOL_COMPARE}
AM_CFLAGS += -fno-strict-aliasing
AM_CFLAGS += -std=gnu99
+AM_CFLAGS += $(CODE_COVERAGE_CFLAGS)
AM_CPPFLAGS = -D_GNU_SOURCE -D__EXTENSIONS__ -D_REENTRANT
AM_CPPFLAGS += -D_POSIX_PTHREAD_SEMANTICS -D_FILE_OFFSET_BITS=64
AM_CPPFLAGS += -D_LARGEFILE64_SOURCE -DHAVE_LARGE_STACKS=1
@@ -14,3 +15,4 @@ AM_CPPFLAGS += -DLIBEXECDIR=\"$(libexecdir)\"
AM_CPPFLAGS += -DRUNSTATEDIR=\"$(runstatedir)\"
AM_CPPFLAGS += -DSBINDIR=\"$(sbindir)\"
AM_CPPFLAGS += -DSYSCONFDIR=\"$(sysconfdir)\"
+AM_CPPFLAGS += $(CODE_COVERAGE_CPPFLAGS)
diff --git a/config/ax_code_coverage.m4 b/config/ax_code_coverage.m4
new file mode 100644
index 000000000..6484f0332
--- /dev/null
+++ b/config/ax_code_coverage.m4
@@ -0,0 +1,264 @@
+# ===========================================================================
+# https://www.gnu.org/software/autoconf-archive/ax_code_coverage.html
+# ===========================================================================
+#
+# SYNOPSIS
+#
+# AX_CODE_COVERAGE()
+#
+# DESCRIPTION
+#
+# Defines CODE_COVERAGE_CPPFLAGS, CODE_COVERAGE_CFLAGS,
+# CODE_COVERAGE_CXXFLAGS and CODE_COVERAGE_LIBS which should be included
+# in the CPPFLAGS, CFLAGS CXXFLAGS and LIBS/LIBADD variables of every
+# build target (program or library) which should be built with code
+# coverage support. Also defines CODE_COVERAGE_RULES which should be
+# substituted in your Makefile; and $enable_code_coverage which can be
+# used in subsequent configure output. CODE_COVERAGE_ENABLED is defined
+# and substituted, and corresponds to the value of the
+# --enable-code-coverage option, which defaults to being disabled.
+#
+# Test also for gcov program and create GCOV variable that could be
+# substituted.
+#
+# Note that all optimization flags in CFLAGS must be disabled when code
+# coverage is enabled.
+#
+# Usage example:
+#
+# configure.ac:
+#
+# AX_CODE_COVERAGE
+#
+# Makefile.am:
+#
+# @CODE_COVERAGE_RULES@
+# my_program_LIBS = ... $(CODE_COVERAGE_LIBS) ...
+# my_program_CPPFLAGS = ... $(CODE_COVERAGE_CPPFLAGS) ...
+# my_program_CFLAGS = ... $(CODE_COVERAGE_CFLAGS) ...
+# my_program_CXXFLAGS = ... $(CODE_COVERAGE_CXXFLAGS) ...
+#
+# This results in a "check-code-coverage" rule being added to any
+# Makefile.am which includes "@CODE_COVERAGE_RULES@" (assuming the module
+# has been configured with --enable-code-coverage). Running `make
+# check-code-coverage` in that directory will run the module's test suite
+# (`make check`) and build a code coverage report detailing the code which
+# was touched, then print the URI for the report.
+#
+# In earlier versions of this macro, CODE_COVERAGE_LDFLAGS was defined
+# instead of CODE_COVERAGE_LIBS. They are both still defined, but use of
+# CODE_COVERAGE_LIBS is preferred for clarity; CODE_COVERAGE_LDFLAGS is
+# deprecated. They have the same value.
+#
+# This code was derived from Makefile.decl in GLib, originally licenced
+# under LGPLv2.1+.
+#
+# LICENSE
+#
+# Copyright (c) 2012, 2016 Philip Withnall
+# Copyright (c) 2012 Xan Lopez
+# Copyright (c) 2012 Christian Persch
+# Copyright (c) 2012 Paolo Borelli
+# Copyright (c) 2012 Dan Winship
+# Copyright (c) 2015 Bastien ROUCARIES
+#
+# This library is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Lesser General Public License as published by
+# the Free Software Foundation; either version 2.1 of the License, or (at
+# your option) any later version.
+#
+# This library is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser
+# General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public License
+# along with this program. If not, see <https://www.gnu.org/licenses/>.
+
+#serial 25
+
+AC_DEFUN([AX_CODE_COVERAGE],[
+ dnl Check for --enable-code-coverage
+ AC_REQUIRE([AC_PROG_SED])
+
+ # allow to override gcov location
+ AC_ARG_WITH([gcov],
+ [AS_HELP_STRING([--with-gcov[=GCOV]], [use given GCOV for coverage (GCOV=gcov).])],
+ [_AX_CODE_COVERAGE_GCOV_PROG_WITH=$with_gcov],
+ [_AX_CODE_COVERAGE_GCOV_PROG_WITH=gcov])
+
+ AC_MSG_CHECKING([whether to build with code coverage support])
+ AC_ARG_ENABLE([code-coverage],
+ AS_HELP_STRING([--enable-code-coverage],
+ [Whether to enable code coverage support]),,
+ enable_code_coverage=no)
+
+ AM_CONDITIONAL([CODE_COVERAGE_ENABLED], [test x$enable_code_coverage = xyes])
+ AC_SUBST([CODE_COVERAGE_ENABLED], [$enable_code_coverage])
+ AC_MSG_RESULT($enable_code_coverage)
+
+ AS_IF([ test "$enable_code_coverage" = "yes" ], [
+ # check for gcov
+ AC_CHECK_TOOL([GCOV],
+ [$_AX_CODE_COVERAGE_GCOV_PROG_WITH],
+ [:])
+ AS_IF([test "X$GCOV" = "X:"],
+ [AC_MSG_ERROR([gcov is needed to do coverage])])
+ AC_SUBST([GCOV])
+
+ dnl Check if gcc is being used
+ AS_IF([ test "$GCC" = "no" ], [
+ AC_MSG_ERROR([not compiling with gcc, which is required for gcov code coverage])
+ ])
+
+ AC_CHECK_PROG([LCOV], [lcov], [lcov])
+ AC_CHECK_PROG([GENHTML], [genhtml], [genhtml])
+
+ AS_IF([ test -z "$LCOV" ], [
+ AC_MSG_ERROR([To enable code coverage reporting you must have lcov installed])
+ ])
+
+ AS_IF([ test -z "$GENHTML" ], [
+ AC_MSG_ERROR([Could not find genhtml from the lcov package])
+ ])
+
+ dnl Build the code coverage flags
+ dnl Define CODE_COVERAGE_LDFLAGS for backwards compatibility
+ CODE_COVERAGE_CPPFLAGS="-DNDEBUG"
+ CODE_COVERAGE_CFLAGS="-O0 -g -fprofile-arcs -ftest-coverage"
+ CODE_COVERAGE_CXXFLAGS="-O0 -g -fprofile-arcs -ftest-coverage"
+ CODE_COVERAGE_LIBS="-lgcov"
+ CODE_COVERAGE_LDFLAGS="$CODE_COVERAGE_LIBS"
+
+ AC_SUBST([CODE_COVERAGE_CPPFLAGS])
+ AC_SUBST([CODE_COVERAGE_CFLAGS])
+ AC_SUBST([CODE_COVERAGE_CXXFLAGS])
+ AC_SUBST([CODE_COVERAGE_LIBS])
+ AC_SUBST([CODE_COVERAGE_LDFLAGS])
+
+ [CODE_COVERAGE_RULES_CHECK='
+ -$(A''M_V_at)$(MAKE) $(AM_MAKEFLAGS) -k check
+ $(A''M_V_at)$(MAKE) $(AM_MAKEFLAGS) code-coverage-capture
+']
+ [CODE_COVERAGE_RULES_CAPTURE='
+ $(code_coverage_v_lcov_cap)$(LCOV) $(code_coverage_quiet) $(addprefix --directory ,$(CODE_COVERAGE_DIRECTORY)) --capture --output-file "$(CODE_COVERAGE_OUTPUT_FILE).tmp" --test-name "$(call code_coverage_sanitize,$(PACKAGE_NAME)-$(PACKAGE_VERSION))" --no-checksum --compat-libtool $(CODE_COVERAGE_LCOV_SHOPTS) $(CODE_COVERAGE_LCOV_OPTIONS)
+ $(code_coverage_v_lcov_ign)$(LCOV) $(code_coverage_quiet) $(addprefix --directory ,$(CODE_COVERAGE_DIRECTORY)) --remove "$(CODE_COVERAGE_OUTPUT_FILE).tmp" "/tmp/*" $(CODE_COVERAGE_IGNORE_PATTERN) --output-file "$(CODE_COVERAGE_OUTPUT_FILE)" $(CODE_COVERAGE_LCOV_SHOPTS) $(CODE_COVERAGE_LCOV_RMOPTS)
+ -@rm -f $(CODE_COVERAGE_OUTPUT_FILE).tmp
+ $(code_coverage_v_genhtml)LANG=C $(GENHTML) $(code_coverage_quiet) $(addprefix --prefix ,$(CODE_COVERAGE_DIRECTORY)) --output-directory "$(CODE_COVERAGE_OUTPUT_DIRECTORY)" --title "$(PACKAGE_NAME)-$(PACKAGE_VERSION) Code Coverage" --legend --show-details "$(CODE_COVERAGE_OUTPUT_FILE)" $(CODE_COVERAGE_GENHTML_OPTIONS)
+ @echo "file://$(abs_builddir)/$(CODE_COVERAGE_OUTPUT_DIRECTORY)/index.html"
+']
+ [CODE_COVERAGE_RULES_CLEAN='
+clean: code-coverage-clean
+distclean: code-coverage-clean
+code-coverage-clean:
+ -$(LCOV) --directory $(top_builddir) -z
+ -rm -rf $(CODE_COVERAGE_OUTPUT_FILE) $(CODE_COVERAGE_OUTPUT_FILE).tmp $(CODE_COVERAGE_OUTPUT_DIRECTORY)
+ -find . \( -name "*.gcda" -o -name "*.gcno" -o -name "*.gcov" \) -delete
+']
+ ], [
+ [CODE_COVERAGE_RULES_CHECK='
+ @echo "Need to reconfigure with --enable-code-coverage"
+']
+ CODE_COVERAGE_RULES_CAPTURE="$CODE_COVERAGE_RULES_CHECK"
+ CODE_COVERAGE_RULES_CLEAN=''
+ ])
+
+[CODE_COVERAGE_RULES='
+# Code coverage
+#
+# Optional:
+# - CODE_COVERAGE_DIRECTORY: Top-level directory for code coverage reporting.
+# Multiple directories may be specified, separated by whitespace.
+# (Default: $(top_builddir))
+# - CODE_COVERAGE_OUTPUT_FILE: Filename and path for the .info file generated
+# by lcov for code coverage. (Default:
+# $(PACKAGE_NAME)-$(PACKAGE_VERSION)-coverage.info)
+# - CODE_COVERAGE_OUTPUT_DIRECTORY: Directory for generated code coverage
+# reports to be created. (Default:
+# $(PACKAGE_NAME)-$(PACKAGE_VERSION)-coverage)
+# - CODE_COVERAGE_BRANCH_COVERAGE: Set to 1 to enforce branch coverage,
+# set to 0 to disable it and leave empty to stay with the default.
+# (Default: empty)
+# - CODE_COVERAGE_LCOV_SHOPTS_DEFAULT: Extra options shared between both lcov
+# instances. (Default: based on $CODE_COVERAGE_BRANCH_COVERAGE)
+# - CODE_COVERAGE_LCOV_SHOPTS: Extra options to shared between both lcov
+# instances. (Default: $CODE_COVERAGE_LCOV_SHOPTS_DEFAULT)
+# - CODE_COVERAGE_LCOV_OPTIONS_GCOVPATH: --gcov-tool pathtogcov
+# - CODE_COVERAGE_LCOV_OPTIONS_DEFAULT: Extra options to pass to the
+# collecting lcov instance. (Default: $CODE_COVERAGE_LCOV_OPTIONS_GCOVPATH)
+# - CODE_COVERAGE_LCOV_OPTIONS: Extra options to pass to the collecting lcov
+# instance. (Default: $CODE_COVERAGE_LCOV_OPTIONS_DEFAULT)
+# - CODE_COVERAGE_LCOV_RMOPTS_DEFAULT: Extra options to pass to the filtering
+# lcov instance. (Default: empty)
+# - CODE_COVERAGE_LCOV_RMOPTS: Extra options to pass to the filtering lcov
+# instance. (Default: $CODE_COVERAGE_LCOV_RMOPTS_DEFAULT)
+# - CODE_COVERAGE_GENHTML_OPTIONS_DEFAULT: Extra options to pass to the
+# genhtml instance. (Default: based on $CODE_COVERAGE_BRANCH_COVERAGE)
+# - CODE_COVERAGE_GENHTML_OPTIONS: Extra options to pass to the genhtml
+# instance. (Default: $CODE_COVERAGE_GENHTML_OPTIONS_DEFAULT)
+# - CODE_COVERAGE_IGNORE_PATTERN: Extra glob pattern of files to ignore
+#
+# The generated report will be titled using the $(PACKAGE_NAME) and
+# $(PACKAGE_VERSION). In order to add the current git hash to the title,
+# use the git-version-gen script, available online.
+
+# Optional variables
+CODE_COVERAGE_DIRECTORY ?= $(top_builddir)
+CODE_COVERAGE_OUTPUT_FILE ?= $(PACKAGE_NAME)-$(PACKAGE_VERSION)-coverage.info
+CODE_COVERAGE_OUTPUT_DIRECTORY ?= $(PACKAGE_NAME)-$(PACKAGE_VERSION)-coverage
+CODE_COVERAGE_BRANCH_COVERAGE ?=
+CODE_COVERAGE_LCOV_SHOPTS_DEFAULT ?= $(if $(CODE_COVERAGE_BRANCH_COVERAGE),\
+--rc lcov_branch_coverage=$(CODE_COVERAGE_BRANCH_COVERAGE))
+CODE_COVERAGE_LCOV_SHOPTS ?= $(CODE_COVERAGE_LCOV_SHOPTS_DEFAULT)
+CODE_COVERAGE_LCOV_OPTIONS_GCOVPATH ?= --gcov-tool "$(GCOV)"
+CODE_COVERAGE_LCOV_OPTIONS_DEFAULT ?= $(CODE_COVERAGE_LCOV_OPTIONS_GCOVPATH)
+CODE_COVERAGE_LCOV_OPTIONS ?= $(CODE_COVERAGE_LCOV_OPTIONS_DEFAULT)
+CODE_COVERAGE_LCOV_RMOPTS_DEFAULT ?=
+CODE_COVERAGE_LCOV_RMOPTS ?= $(CODE_COVERAGE_LCOV_RMOPTS_DEFAULT)
+CODE_COVERAGE_GENHTML_OPTIONS_DEFAULT ?=\
+$(if $(CODE_COVERAGE_BRANCH_COVERAGE),\
+--rc genhtml_branch_coverage=$(CODE_COVERAGE_BRANCH_COVERAGE))
+CODE_COVERAGE_GENHTML_OPTIONS ?= $(CODE_COVERAGE_GENHTML_OPTIONS_DEFAULT)
+CODE_COVERAGE_IGNORE_PATTERN ?=
+
+GITIGNOREFILES ?=
+GITIGNOREFILES += $(CODE_COVERAGE_OUTPUT_FILE) $(CODE_COVERAGE_OUTPUT_DIRECTORY)
+
+code_coverage_v_lcov_cap = $(code_coverage_v_lcov_cap_$(V))
+code_coverage_v_lcov_cap_ = $(code_coverage_v_lcov_cap_$(AM_DEFAULT_VERBOSITY))
+code_coverage_v_lcov_cap_0 = @echo " LCOV --capture"\
+ $(CODE_COVERAGE_OUTPUT_FILE);
+code_coverage_v_lcov_ign = $(code_coverage_v_lcov_ign_$(V))
+code_coverage_v_lcov_ign_ = $(code_coverage_v_lcov_ign_$(AM_DEFAULT_VERBOSITY))
+code_coverage_v_lcov_ign_0 = @echo " LCOV --remove /tmp/*"\
+ $(CODE_COVERAGE_IGNORE_PATTERN);
+code_coverage_v_genhtml = $(code_coverage_v_genhtml_$(V))
+code_coverage_v_genhtml_ = $(code_coverage_v_genhtml_$(AM_DEFAULT_VERBOSITY))
+code_coverage_v_genhtml_0 = @echo " GEN " $(CODE_COVERAGE_OUTPUT_DIRECTORY);
+code_coverage_quiet = $(code_coverage_quiet_$(V))
+code_coverage_quiet_ = $(code_coverage_quiet_$(AM_DEFAULT_VERBOSITY))
+code_coverage_quiet_0 = --quiet
+
+# sanitizes the test-name: replaces with underscores: dashes and dots
+code_coverage_sanitize = $(subst -,_,$(subst .,_,$(1)))
+
+# Use recursive makes in order to ignore errors during check
+check-code-coverage:'"$CODE_COVERAGE_RULES_CHECK"'
+
+# Capture code coverage data
+code-coverage-capture: code-coverage-capture-hook'"$CODE_COVERAGE_RULES_CAPTURE"'
+
+# Hook rule executed before code-coverage-capture, overridable by the user
+code-coverage-capture-hook:
+
+'"$CODE_COVERAGE_RULES_CLEAN"'
+
+A''M_DISTCHECK_CONFIGURE_FLAGS ?=
+A''M_DISTCHECK_CONFIGURE_FLAGS += --disable-code-coverage
+
+.PHONY: check-code-coverage code-coverage-capture code-coverage-capture-hook code-coverage-clean
+']
+
+ AC_SUBST([CODE_COVERAGE_RULES])
+ m4_ifdef([_AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE([CODE_COVERAGE_RULES])])
+])
diff --git a/config/zfs-build.m4 b/config/zfs-build.m4
index c695a882e..17cc80462 100644
--- a/config/zfs-build.m4
+++ b/config/zfs-build.m4
@@ -76,37 +76,6 @@ AC_DEFUN([ZFS_AC_DEBUGINFO], [
AC_MSG_RESULT([$enable_debuginfo])
])
-AC_DEFUN([ZFS_AC_GCOV_KERNEL], [
-])
-
-AC_DEFUN([ZFS_AC_GCOV_USER], [
- DEBUG_CFLAGS="$DEBUG_CFLAGS -fprofile-arcs -ftest-coverage"
-])
-
-AC_DEFUN([ZFS_AC_GCOV], [
- AC_MSG_CHECKING([whether gcov profiling will be enabled])
- AC_ARG_ENABLE([gcov],
- [AS_HELP_STRING([--enable-gcov],
- [Enable gcov profiling @<:@default=no@:>@])],
- [],
- [enable_gcov=no])
-
- AS_CASE(["x$enable_gcov"],
- ["xyes"],
- [ZFS_AC_GCOV_KERNEL
- ZFS_AC_GCOV_USER],
- ["xkernel"],
- [ZFS_AC_GCOV_KERNEL],
- ["xuser"],
- [ZFS_AC_GCOV_USER],
- ["xno"],
- [],
- [AC_MSG_ERROR([Unknown option $enable_gcov])])
-
- AC_SUBST(DEBUG_CFLAGS)
- AC_MSG_RESULT([$enable_gcov])
-])
-
AC_DEFUN([ZFS_AC_CONFIG_ALWAYS], [
ZFS_AC_CONFIG_ALWAYS_NO_UNUSED_BUT_SET_VARIABLE
ZFS_AC_CONFIG_ALWAYS_NO_BOOL_COMPARE
--
2.14.2
-97
View File
@@ -1,97 +0,0 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Brian Behlendorf <behlendorf1@llnl.gov>
Date: Fri, 22 Sep 2017 18:54:34 -0700
Subject: [PATCH] Update codecov.yml
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Update the codecov.yml to make the following functional changes.
* Do not require the CI testing to pass before posting results.
* Set red-yellow-green coverage percent from 50%-100%
* Allow a 1% drop in coverage to still be considered a pass.
* Reduce the size of the comment posted to the issue.
Additionally, the top level README.markdown has been updated
to include the codecov.io badge and the project summary reworded.
Reviewed-by: Prakash Surya <prakash.surya@delphix.com>
Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Closes #6669
(cherry picked from commit 3790bfa80f9b26fd750b4a554c5707b9d380aac4)
Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
---
README.markdown | 12 ++++++------
.github/codecov.yml | 31 ++++++++++++++++++++++++++-----
2 files changed, 32 insertions(+), 11 deletions(-)
diff --git a/README.markdown b/README.markdown
index fd2ca8c86..1c305b35d 100644
--- a/README.markdown
+++ b/README.markdown
@@ -1,9 +1,9 @@
-<p align="center"><img src="http://zfsonlinux.org/images/zfs-linux.png"/></p>
-ZFS is an advanced file system and volume manager which was originally
-developed for Solaris and is now maintained by the Illumos community.
+![img](http://zfsonlinux.org/images/zfs-linux.png)
-ZFS on Linux, which is also known as ZoL, is currently feature complete. It
-includes fully functional and stable SPA, DMU, ZVOL, and ZPL layers. And it's native!
+ZFS on Linux is an advanced file system and volume manager which was originally
+developed for Solaris and is now maintained by the OpenZFS community.
+
+[![codecov](https://codecov.io/gh/zfsonlinux/zfs/branch/master/graph/badge.svg)](https://codecov.io/gh/zfsonlinux/zfs)
# Official Resources
* [Site](http://zfsonlinux.org)
@@ -16,4 +16,4 @@ Full documentation for installing ZoL on your favorite Linux distribution can
be found at [our site](http://zfsonlinux.org/).
# Contribute & Develop
-We have a separate document with [contribution guidelines](./.github/CONTRIBUTING.md).
\ No newline at end of file
+We have a separate document with [contribution guidelines](./.github/CONTRIBUTING.md).
diff --git a/.github/codecov.yml b/.github/codecov.yml
index f36be39cb..e74c59a0f 100644
--- a/.github/codecov.yml
+++ b/.github/codecov.yml
@@ -1,9 +1,30 @@
codecov:
- strict_yaml_branch: master # only use the latest copy on master branch
-
-comment: off
+ notify:
+ require_ci_to_pass: no
coverage:
+ precision: 2
+ round: down
+ range: "50...100"
+
status:
- project: off
- patch: off
+ project:
+ default:
+ threshold: 1%
+
+ patch:
+ default:
+ threshold: 1%
+
+parsers:
+ gcov:
+ branch_detection:
+ conditional: yes
+ loop: yes
+ method: no
+ macro: no
+
+comment:
+ layout: "header, sunburst, diff"
+ behavior: default
+ require_changes: no
--
2.14.2
@@ -1,35 +0,0 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Brian Behlendorf <behlendorf1@llnl.gov>
Date: Fri, 22 Sep 2017 22:16:18 -0700
Subject: [PATCH] Fix "--enable-code-coverage" debug build
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
When --enable-code-coverage is provided it should not result
in NDEBUG being defined. This is controlled by --enable-debug.
Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Closes #6674
(cherry picked from commit 6897ea475fd0c82a74edacf374d4e339f9a9b86b)
Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
---
config/ax_code_coverage.m4 | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/config/ax_code_coverage.m4 b/config/ax_code_coverage.m4
index 6484f0332..4417d4444 100644
--- a/config/ax_code_coverage.m4
+++ b/config/ax_code_coverage.m4
@@ -124,7 +124,7 @@ AC_DEFUN([AX_CODE_COVERAGE],[
dnl Build the code coverage flags
dnl Define CODE_COVERAGE_LDFLAGS for backwards compatibility
- CODE_COVERAGE_CPPFLAGS="-DNDEBUG"
+ CODE_COVERAGE_CPPFLAGS=""
CODE_COVERAGE_CFLAGS="-O0 -g -fprofile-arcs -ftest-coverage"
CODE_COVERAGE_CXXFLAGS="-O0 -g -fprofile-arcs -ftest-coverage"
CODE_COVERAGE_LIBS="-lgcov"
--
2.14.2
@@ -1,153 +0,0 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Brian Behlendorf <behlendorf1@llnl.gov>
Date: Thu, 19 Oct 2017 10:06:55 -0700
Subject: [PATCH] Remove vn_rename and vn_remove dependency
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
The only place vn_rename and vn_remove are used is when writing
out an updated pool configuration file. By truncating the file
instead of renaming and removing it we can avoid having to implement
these interfaces entirely. Functionally an empty cache file is
treated the same as a missing cache file. This is particularly
advantageous because the Linux kernel has never provided a way
to reliably implement vn_rename and vn_remove.
The cachefile_004_pos.ksh test case was updated to understand
that an empty cache file is the same as a missing one.
The zfs-import-* systemd service files were not updated to use
ConditionFileNotEmpty in place of ConditionPathExists. This
means that after exporting all pools and rebooting new pools
will not the scanned for on the next boot. This small change
should not impact normal usage since pools are not exported
as part of a normal shutdown.
Documentation was updated accordingly.
Reviewed-by: George Melikov <mail@gmelikov.ru>
Reviewed-by: Arkadiusz Bubała <arkadiusz.bubala@open-e.com>
Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Closes zfsonlinux/spl#648
Closes #6753
(cherry picked from commit 5d62588032aa1d13d7f789cf564a0d20c77a5762)
Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
---
module/zfs/spa_config.c | 34 ++++++++++++++++++----
man/man8/zpool.8 | 2 +-
.../functional/cachefile/cachefile_004_pos.ksh | 6 ++--
3 files changed, 32 insertions(+), 10 deletions(-)
diff --git a/module/zfs/spa_config.c b/module/zfs/spa_config.c
index 5b792b868..fea239014 100644
--- a/module/zfs/spa_config.c
+++ b/module/zfs/spa_config.c
@@ -147,6 +147,26 @@ out:
kobj_close_file(file);
}
+static int
+spa_config_remove(spa_config_dirent_t *dp)
+{
+#if defined(__linux__) && defined(_KERNEL)
+ int error, flags = FWRITE | FTRUNC;
+ uio_seg_t seg = UIO_SYSSPACE;
+ vnode_t *vp;
+
+ error = vn_open(dp->scd_path, seg, flags, 0644, &vp, 0, 0);
+ if (error == 0) {
+ (void) VOP_FSYNC(vp, FSYNC, kcred, NULL);
+ (void) VOP_CLOSE(vp, 0, 1, 0, kcred, NULL);
+ }
+
+ return (error);
+#else
+ return (vn_remove(dp->scd_path, UIO_SYSSPACE, RMFILE));
+#endif
+}
+
static int
spa_config_write(spa_config_dirent_t *dp, nvlist_t *nvl)
{
@@ -161,7 +181,10 @@ spa_config_write(spa_config_dirent_t *dp, nvlist_t *nvl)
* If the nvlist is empty (NULL), then remove the old cachefile.
*/
if (nvl == NULL) {
- err = vn_remove(dp->scd_path, UIO_SYSSPACE, RMFILE);
+ err = spa_config_remove(dp);
+ if (err == ENOENT)
+ err = 0;
+
return (err);
}
@@ -174,9 +197,9 @@ spa_config_write(spa_config_dirent_t *dp, nvlist_t *nvl)
#if defined(__linux__) && defined(_KERNEL)
/*
* Write the configuration to disk. Due to the complexity involved
- * in performing a rename from within the kernel the file is truncated
- * and overwritten in place. In the event of an error the file is
- * unlinked to make sure we always have a consistent view of the data.
+ * in performing a rename and remove from within the kernel the file
+ * is instead truncated and overwritten in place. This way we always
+ * have a consistent view of the data or a zero length file.
*/
err = vn_open(dp->scd_path, UIO_SYSSPACE, oflags, 0644, &vp, 0, 0);
if (err == 0) {
@@ -186,9 +209,8 @@ spa_config_write(spa_config_dirent_t *dp, nvlist_t *nvl)
err = VOP_FSYNC(vp, FSYNC, kcred, NULL);
(void) VOP_CLOSE(vp, oflags, 1, 0, kcred, NULL);
-
if (err)
- (void) vn_remove(dp->scd_path, UIO_SYSSPACE, RMFILE);
+ (void) spa_config_remove(dp);
}
#else
/*
diff --git a/man/man8/zpool.8 b/man/man8/zpool.8
index 328ba3dce..22579101a 100644
--- a/man/man8/zpool.8
+++ b/man/man8/zpool.8
@@ -655,7 +655,7 @@ Because the kernel destroys and recreates this file when pools are added and
removed, care should be taken when attempting to access this file.
When the last pool using a
.Sy cachefile
-is exported or destroyed, the file is removed.
+is exported or destroyed, the file will be empty.
.It Sy comment Ns = Ns Ar text
A text string consisting of printable ASCII characters that will be stored
such that it is available even if the pool becomes faulted.
diff --git a/tests/zfs-tests/tests/functional/cachefile/cachefile_004_pos.ksh b/tests/zfs-tests/tests/functional/cachefile/cachefile_004_pos.ksh
index ae54a9365..e0b81e166 100755
--- a/tests/zfs-tests/tests/functional/cachefile/cachefile_004_pos.ksh
+++ b/tests/zfs-tests/tests/functional/cachefile/cachefile_004_pos.ksh
@@ -98,13 +98,13 @@ log_must zpool set cachefile=$CPATH2 $TESTPOOL1
log_must pool_in_cache $TESTPOOL1 $CPATH2
log_must zpool set cachefile=$CPATH2 $TESTPOOL2
log_must pool_in_cache $TESTPOOL2 $CPATH2
-if [[ -f $CPATH1 ]]; then
+if [[ -s $CPATH1 ]]; then
log_fail "Verify set when cachefile is set on pool."
fi
log_must zpool export $TESTPOOL1
log_must zpool export $TESTPOOL2
-if [[ -f $CPATH2 ]]; then
+if [[ -s $CPATH2 ]]; then
log_fail "Verify export when cachefile is set on pool."
fi
@@ -117,7 +117,7 @@ log_must pool_in_cache $TESTPOOL2 $CPATH2
log_must zpool destroy $TESTPOOL1
log_must zpool destroy $TESTPOOL2
-if [[ -f $CPATH2 ]]; then
+if [[ -s $CPATH2 ]]; then
log_fail "Verify destroy when cachefile is set on pool."
fi
--
2.14.2
@@ -1,102 +0,0 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: LOLi <loli10K@users.noreply.github.com>
Date: Sun, 17 Dec 2017 23:08:48 +0100
Subject: [PATCH] Fix --with-systemd on Debian-based distributions (#6963)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
These changes propagate the "--with-systemd" configure option to the
RPM spec file, allowing Debian-based distributions to package
systemd-related files.
Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: loli10K <ezomori.nozomu@gmail.com>
Closes #6591
Closes #6963
(cherry picked from commit 03658d5081c64e14898cc9be45da3305b27fac9e)
Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
---
rpm/generic/zfs.spec.in | 2 +-
config/user-systemd.m4 | 20 ++++++++++++++++----
config/zfs-build.m4 | 2 +-
3 files changed, 18 insertions(+), 6 deletions(-)
diff --git a/rpm/generic/zfs.spec.in b/rpm/generic/zfs.spec.in
index 8df57fa46..4a911b4c2 100644
--- a/rpm/generic/zfs.spec.in
+++ b/rpm/generic/zfs.spec.in
@@ -87,11 +87,11 @@ BuildRequires: libblkid-devel
BuildRequires: libudev-devel
BuildRequires: libattr-devel
%endif
+
%if 0%{?_systemd}
Requires(post): systemd
Requires(preun): systemd
Requires(postun): systemd
-BuildRequires: systemd
%endif
# The zpool iostat/status -c scripts call some utilities like lsblk and iostat
diff --git a/config/user-systemd.m4 b/config/user-systemd.m4
index c2105abce..de2a44f10 100644
--- a/config/user-systemd.m4
+++ b/config/user-systemd.m4
@@ -2,7 +2,8 @@ AC_DEFUN([ZFS_AC_CONFIG_USER_SYSTEMD], [
AC_ARG_ENABLE(systemd,
AC_HELP_STRING([--enable-systemd],
[install systemd unit/preset files [[default: yes]]]),
- [],enable_systemd=yes)
+ [enable_systemd=$enableval],
+ [enable_systemd=check])
AC_ARG_WITH(systemdunitdir,
AC_HELP_STRING([--with-systemdunitdir=DIR],
@@ -19,16 +20,27 @@ AC_DEFUN([ZFS_AC_CONFIG_USER_SYSTEMD], [
[install systemd module load files into dir [[/usr/lib/modules-load.d]]]),
systemdmoduleloaddir=$withval,systemdmodulesloaddir=/usr/lib/modules-load.d)
+ AS_IF([test "x$enable_systemd" = xcheck], [
+ AS_IF([systemctl --version >/dev/null 2>&1],
+ [enable_systemd=yes],
+ [enable_systemd=no])
+ ])
- AS_IF([test "x$enable_systemd" = xyes],
- [
+ AC_MSG_CHECKING(for systemd support)
+ AC_MSG_RESULT([$enable_systemd])
+
+ AS_IF([test "x$enable_systemd" = xyes], [
ZFS_INIT_SYSTEMD=systemd
ZFS_MODULE_LOAD=modules-load.d
+ DEFINE_SYSTEMD='--with systemd --define "_unitdir $(systemdunitdir)" --define "_presetdir $(systemdpresetdir)"'
modulesloaddir=$systemdmodulesloaddir
- ])
+ ],[
+ DEFINE_SYSTEMD='--without systemd'
+ ])
AC_SUBST(ZFS_INIT_SYSTEMD)
AC_SUBST(ZFS_MODULE_LOAD)
+ AC_SUBST(DEFINE_SYSTEMD)
AC_SUBST(systemdunitdir)
AC_SUBST(systemdpresetdir)
AC_SUBST(modulesloaddir)
diff --git a/config/zfs-build.m4 b/config/zfs-build.m4
index 17cc80462..5eaa49c87 100644
--- a/config/zfs-build.m4
+++ b/config/zfs-build.m4
@@ -160,7 +160,7 @@ AC_DEFUN([ZFS_AC_RPM], [
])
RPM_DEFINE_COMMON='--define "$(DEBUG_ZFS) 1"'
- RPM_DEFINE_UTIL='--define "_dracutdir $(dracutdir)" --define "_udevdir $(udevdir)" --define "_udevruledir $(udevruledir)" --define "_initconfdir $(DEFAULT_INITCONF_DIR)" $(DEFINE_INITRAMFS)'
+ RPM_DEFINE_UTIL='--define "_dracutdir $(dracutdir)" --define "_udevdir $(udevdir)" --define "_udevruledir $(udevruledir)" --define "_initconfdir $(DEFAULT_INITCONF_DIR)" $(DEFINE_INITRAMFS) $(DEFINE_SYSTEMD)'
RPM_DEFINE_KMOD='--define "kernels $(LINUX_VERSION)" --define "require_spldir $(SPL)" --define "require_splobj $(SPL_OBJ)" --define "ksrc $(LINUX)" --define "kobj $(LINUX_OBJ)"'
RPM_DEFINE_DKMS=
--
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 19:49:33 +0100
Subject: [PATCH] ZTS: Fix create-o_ashift test case
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
The function that fills the uberblock ring buffer on every device label
has been reworked to avoid occasional failures caused by a race
condition that prevents 'zpool sync' from writing some uberblock
sequentially: this happens when the pool sync ioctl dispatch code calls
txg_wait_synced() while we're already waiting for a TXG to sync.
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: loli10K <ezomori.nozomu@gmail.com>
Closes #6924
Closes #6977
(cherry picked from commit 6c891ade8bee9c54484d5cf9b939582b7a9b7eeb)
Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
---
cmd/zdb/zdb.c | 8 ++--
.../cli_root/zpool_create/create-o_ashift.ksh | 47 ++++++++++------------
2 files changed, 26 insertions(+), 29 deletions(-)
diff --git a/cmd/zdb/zdb.c b/cmd/zdb/zdb.c
index 1097501e8..442685486 100644
--- a/cmd/zdb/zdb.c
+++ b/cmd/zdb/zdb.c
@@ -2716,10 +2716,6 @@ dump_label(const char *dev)
exit(1);
}
- if (ioctl(fd, BLKFLSBUF) != 0)
- (void) printf("failed to invalidate cache '%s' : %s\n", path,
- strerror(errno));
-
if (fstat64_blk(fd, &statbuf) != 0) {
(void) printf("failed to stat '%s': %s\n", path,
strerror(errno));
@@ -2727,6 +2723,10 @@ dump_label(const char *dev)
exit(1);
}
+ if (S_ISBLK(statbuf.st_mode) && ioctl(fd, BLKFLSBUF) != 0)
+ (void) printf("failed to invalidate cache '%s' : %s\n", path,
+ strerror(errno));
+
avl_create(&config_tree, cksum_record_compare,
sizeof (cksum_record_t), offsetof(cksum_record_t, link));
avl_create(&uberblock_tree, cksum_record_compare,
diff --git a/tests/zfs-tests/tests/functional/cli_root/zpool_create/create-o_ashift.ksh b/tests/zfs-tests/tests/functional/cli_root/zpool_create/create-o_ashift.ksh
index 6449c8a91..6a9c3e28c 100755
--- a/tests/zfs-tests/tests/functional/cli_root/zpool_create/create-o_ashift.ksh
+++ b/tests/zfs-tests/tests/functional/cli_root/zpool_create/create-o_ashift.ksh
@@ -44,47 +44,45 @@ verify_runnable "global"
function cleanup
{
- poolexists $TESTPOOL && destroy_pool $TESTPOOL
+ destroy_pool $TESTPOOL
log_must rm -f $disk
}
#
-# Commit the specified number of TXGs to the provided pool
-# We use 'zpool sync' here because we can't force it via sync(1) like on illumos
-# $1 pool name
-# $2 number of txg syncs
+# Fill the uberblock ring in every <device> label: we do this by committing
+# TXGs to the provided <pool> until every slot contains a valid uberblock.
+# NOTE: We use 'zpool sync' here because we can't force it via sync(1) like on
+# illumos
#
-function txg_sync
+function write_device_uberblocks # <device> <pool>
{
- typeset pool=$1
- typeset -i count=$2
- typeset -i i=0;
+ typeset device=$1
+ typeset pool=$2
- while [ $i -lt $count ]
+ while [ "$(zdb -quuul $device | grep -c 'invalid')" -ne 0 ]
do
- log_must sync_pool $pool true
- ((i = i + 1))
+ sync_pool $pool true
done
}
#
-# Verify device $1 labels contains $2 valid uberblocks in every label
-# $1 device
-# $2 uberblocks count
+# Verify every label on <device> contains <count> (valid) uberblocks
#
-function verify_device_uberblocks
+function verify_device_uberblocks # <device> <count>
{
typeset device=$1
typeset ubcount=$2
zdb -quuul $device | egrep '^(\s+)?Uberblock' |
- egrep -v 'invalid$' | awk \
- -v ubcount=$ubcount '{ uberblocks[$0]++; }
- END { for (i in uberblocks) {
- count++;
- if (uberblocks[i] != 4) { exit 1; }
- }
- if (count != ubcount) { exit 1; } }'
+ awk -v ubcount=$ubcount 'BEGIN { count=0 } { uberblocks[$0]++; }
+ END {
+ for (i in uberblocks) {
+ if (i ~ /invalid/) { continue; }
+ if (uberblocks[i] != 4) { exit 1; }
+ count++;
+ }
+ if (count != ubcount) { exit 1; }
+ }'
return $?
}
@@ -110,8 +108,7 @@ do
log_fail "Pool was created without setting ashift value to "\
"$ashift (current = $pprop)"
fi
- # force 128 txg sync to fill the uberblock ring
- txg_sync $TESTPOOL 128
+ write_device_uberblocks $disk $TESTPOOL
verify_device_uberblocks $disk ${ubcount[$i]}
if [[ $? -ne 0 ]]
then
--
2.14.2
@@ -1,49 +0,0 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: "John L. Hammond" <35266395+jhammond-intel@users.noreply.github.com>
Date: Wed, 17 Jan 2018 14:24:42 -0600
Subject: [PATCH] Emit an error message before MMP suspends pool
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
In mmp_thread(), emit an MMP specific error message before calling
zio_suspend() so that the administrator will understand why the pool
is being suspended.
Reviewed-by: Olaf Faaland <faaland1@llnl.gov>
Reviewed-by: Giuseppe Di Natale <dinatale2@llnl.gov>
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: John L. Hammond <john.hammond@intel.com>
Closes #7048
(cherry picked from commit ecc972c7f009e1fa75900e276a4c1306c55b5722)
Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
---
module/zfs/mmp.c | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/module/zfs/mmp.c b/module/zfs/mmp.c
index 6f2aa3f59..e91ae628a 100644
--- a/module/zfs/mmp.c
+++ b/module/zfs/mmp.c
@@ -26,6 +26,7 @@
#include <sys/mmp.h>
#include <sys/spa.h>
#include <sys/spa_impl.h>
+#include <sys/time.h>
#include <sys/vdev.h>
#include <sys/vdev_impl.h>
#include <sys/zfs_context.h>
@@ -428,6 +429,10 @@ mmp_thread(spa_t *spa)
*/
if (!suspended && mmp_fail_intervals && multihost &&
(start - mmp->mmp_last_write) > max_fail_ns) {
+ cmn_err(CE_WARN, "MMP writes to pool '%s' have not "
+ "succeeded in over %llus; suspending pool",
+ spa_name(spa),
+ NSEC2SEC(start - mmp->mmp_last_write));
zio_suspend(spa, NULL);
}
--
2.14.2
@@ -1,85 +0,0 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: LOLi <loli10K@users.noreply.github.com>
Date: Fri, 2 Feb 2018 22:50:42 +0100
Subject: [PATCH] Fix systemd_ RPM macros usage on Debian-based distributions
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Debian-based distributions do not seem to provide RPM macros for
dealing with systemd pre- and post- (un)install actions: this results
in errors when installing or upgrading .deb packages because the
resulting control scripts contain the following unresolved macros:
* %systemd_post
* %systemd_preun
* %systemd_postun
Fix this by providing default values for postinstall, preuninstall and
postuninstall scripts when these macros are not defined.
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Reviewed-by: Giuseppe Di Natale <dinatale2@llnl.gov>
Signed-off-by: loli10K <ezomori.nozomu@gmail.com>
Closes #7074
Closes #7100
(cherry picked from commit 29b79dcfe90a67a919c2f42fbaa2e557ea484bd5)
Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
---
rpm/generic/zfs.spec.in | 21 ++++++++++++++++++++-
1 file changed, 20 insertions(+), 1 deletion(-)
diff --git a/rpm/generic/zfs.spec.in b/rpm/generic/zfs.spec.in
index 4a911b4c2..ce028794c 100644
--- a/rpm/generic/zfs.spec.in
+++ b/rpm/generic/zfs.spec.in
@@ -245,8 +245,15 @@ find %{?buildroot}%{_libdir} -name '*.la' -exec rm -f {} \;
%post
%if 0%{?_systemd}
+%if 0%{?systemd_post:1}
%systemd_post %{systemd_svcs}
%else
+if [ "$1" = "1" -o "$1" = "install" ] ; then
+ # Initial installation
+ systemctl preset %{systemd_svcs} >/dev/null || true
+fi
+%endif
+%else
if [ -x /sbin/chkconfig ]; then
/sbin/chkconfig --add zfs-import
/sbin/chkconfig --add zfs-mount
@@ -258,9 +265,17 @@ exit 0
%preun
%if 0%{?_systemd}
+%if 0%{?systemd_preun:1}
%systemd_preun %{systemd_svcs}
%else
-if [ "$1" = "0" ] && [ -x /sbin/chkconfig ]; then
+if [ "$1" = "0" -o "$1" = "remove" ] ; then
+ # Package removal, not upgrade
+ systemctl --no-reload disable %{systemd_svcs} >/dev/null || true
+ systemctl stop %{systemd_svcs} >/dev/null || true
+fi
+%endif
+%else
+if [ "$1" = "0" -o "$1" = "remove" ] && [ -x /sbin/chkconfig ]; then
/sbin/chkconfig --del zfs-import
/sbin/chkconfig --del zfs-mount
/sbin/chkconfig --del zfs-share
@@ -271,7 +286,11 @@ exit 0
%postun
%if 0%{?_systemd}
+%if 0%{?systemd_postun:1}
%systemd_postun %{systemd_svcs}
+%else
+systemctl --system daemon-reload >/dev/null || true
+%endif
%endif
%files
--
2.14.2
@@ -1,39 +0,0 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: wli5 <weigang.li@intel.com>
Date: Tue, 6 Feb 2018 02:26:27 +0800
Subject: [PATCH] Bug fix in qat_compress.c for vmalloc addr check
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Remove the unused vmalloc address check, and function mem_to_page
will handle the non-vmalloc address when map it to a physical
address.
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: Weigang Li <weigang.li@intel.com>
Closes #7125
(cherry picked from commit 5f38142e7b3a8994afef60faa2e65d72e7993807)
Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
---
module/zfs/qat_compress.c | 4 ----
1 file changed, 4 deletions(-)
diff --git a/module/zfs/qat_compress.c b/module/zfs/qat_compress.c
index 4d17d7ac9..62655f56d 100644
--- a/module/zfs/qat_compress.c
+++ b/module/zfs/qat_compress.c
@@ -364,10 +364,6 @@ qat_compress(qat_compress_dir_t dir, char *src, int src_len,
Cpa32U dst_buffer_list_mem_size = sizeof (CpaBufferList) +
(num_dst_buf * sizeof (CpaFlatBuffer));
- if (!is_vmalloc_addr(src) || !is_vmalloc_addr(src + src_len - 1) ||
- !is_vmalloc_addr(dst) || !is_vmalloc_addr(dst + dst_len - 1))
- return (-1);
-
if (PHYS_CONTIG_ALLOC(&in_pages,
num_src_buf * sizeof (struct page *)) != CPA_STATUS_SUCCESS)
goto fail;
--
2.14.2
@@ -1,52 +0,0 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Brian Behlendorf <behlendorf1@llnl.gov>
Date: Mon, 5 Feb 2018 20:42:52 -0800
Subject: [PATCH] Fix default libdir for Debian/Ubuntu
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
The distribution provided architecture specific RPM macro files
for x86_64 and other architectures on Debian/Ubuntu specify the
wrong default libdir install location. When building deb packages
override _lib with the correct location.
Reviewed-by: Giuseppe Di Natale <dinatale2@llnl.gov>
Reviewed-by: loli10K <ezomori.nozomu@gmail.com>
Reviewed by: George Melikov <mail@gmelikov.ru>
Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Closes #7083
Closes #7101
(cherry picked from commit f1dde3fb20eb27c05b57ad82e0905a587ced8ee8)
Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
---
config/zfs-build.m4 | 13 +++++++++++++
1 file changed, 13 insertions(+)
diff --git a/config/zfs-build.m4 b/config/zfs-build.m4
index 5eaa49c87..7c19cecd6 100644
--- a/config/zfs-build.m4
+++ b/config/zfs-build.m4
@@ -164,6 +164,19 @@ AC_DEFUN([ZFS_AC_RPM], [
RPM_DEFINE_KMOD='--define "kernels $(LINUX_VERSION)" --define "require_spldir $(SPL)" --define "require_splobj $(SPL_OBJ)" --define "ksrc $(LINUX)" --define "kobj $(LINUX_OBJ)"'
RPM_DEFINE_DKMS=
+ dnl # Override default lib directory on Debian/Ubuntu systems. The provided
+ dnl # /usr/lib/rpm/platform/<arch>/macros files do not specify the correct
+ dnl # path for multiarch systems as described by the packaging guidelines.
+ dnl #
+ dnl # https://wiki.ubuntu.com/MultiarchSpec
+ dnl # https://wiki.debian.org/Multiarch/Implementation
+ dnl #
+ AS_IF([test "$DEFAULT_PACKAGE" = "deb"], [
+ MULTIARCH_LIBDIR="lib/$(dpkg-architecture -qDEB_HOST_MULTIARCH)"
+ RPM_DEFINE_UTIL+=' --define "_lib $(MULTIARCH_LIBDIR)"'
+ AC_SUBST(MULTIARCH_LIBDIR)
+ ])
+
SRPM_DEFINE_COMMON='--define "build_src_rpm 1"'
SRPM_DEFINE_UTIL=
SRPM_DEFINE_KMOD=
--
2.14.2
@@ -1,71 +0,0 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Richard Elling <Richard.Elling@RichardElling.com>
Date: Wed, 7 Feb 2018 11:54:20 -0800
Subject: [PATCH] Remove deprecated zfs_arc_p_aggressive_disable
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
zfs_arc_p_aggressive_disable is no more. This PR removes docs
and module parameters for zfs_arc_p_aggressive_disable.
Reviewed-by: Giuseppe Di Natale <dinatale2@llnl.gov>
Reviewed by: George Melikov <mail@gmelikov.ru>
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Richard Elling <Richard.Elling@RichardElling.com>
Closes #7135
(cherry picked from commit a58e1284d8998b0d7e409a6ec009d9d372aad41b)
Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
---
module/zfs/arc.c | 4 ----
man/man5/zfs-module-parameters.5 | 11 -----------
2 files changed, 15 deletions(-)
diff --git a/module/zfs/arc.c b/module/zfs/arc.c
index 264e67735..9d1d0db1d 100644
--- a/module/zfs/arc.c
+++ b/module/zfs/arc.c
@@ -391,7 +391,6 @@ unsigned long zfs_arc_dnode_limit_percent = 10;
*/
unsigned long zfs_arc_sys_free = 0;
int zfs_arc_min_prefetch_lifespan = 0;
-int zfs_arc_p_aggressive_disable = 1;
int zfs_arc_p_dampener_disable = 1;
int zfs_arc_meta_prune = 10000;
int zfs_arc_meta_strategy = ARC_STRATEGY_META_BALANCED;
@@ -7928,9 +7927,6 @@ MODULE_PARM_DESC(zfs_arc_meta_strategy, "Meta reclaim strategy");
module_param(zfs_arc_grow_retry, int, 0644);
MODULE_PARM_DESC(zfs_arc_grow_retry, "Seconds before growing arc size");
-module_param(zfs_arc_p_aggressive_disable, int, 0644);
-MODULE_PARM_DESC(zfs_arc_p_aggressive_disable, "disable aggressive arc_p grow");
-
module_param(zfs_arc_p_dampener_disable, int, 0644);
MODULE_PARM_DESC(zfs_arc_p_dampener_disable, "disable arc_p adapt dampener");
diff --git a/man/man5/zfs-module-parameters.5 b/man/man5/zfs-module-parameters.5
index 19e6becfd..d4daffde6 100644
--- a/man/man5/zfs-module-parameters.5
+++ b/man/man5/zfs-module-parameters.5
@@ -674,17 +674,6 @@ max arc_p
Default value: \fB0\fR.
.RE
-.sp
-.ne 2
-.na
-\fBzfs_arc_p_aggressive_disable\fR (int)
-.ad
-.RS 12n
-Disable aggressive arc_p growth
-.sp
-Use \fB1\fR for yes (default) and \fB0\fR to disable.
-.RE
-
.sp
.ne 2
.na
--
2.14.2
@@ -1,51 +0,0 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: WHR <msl0000023508@gmail.com>
Date: Sun, 14 Jan 2018 23:57:54 +0300
Subject: [PATCH] OpenZFS 8966 - Source file zfs_acl.c, function
zfs_aclset_common contains a use after end of the lifetime of a local
variable
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Authored by: WHR <msl0000023508@gmail.com>
Reviewed by: Matt Ahrens <mahrens@delphix.com>
Reviewed by: Andriy Gapon <avg@FreeBSD.org>
Reviewed by: George Melikov <mail@gmelikov.ru>
Reviewed by: Brian Behlendorf <behlendorf1@llnl.gov>
Approved by: Richard Lowe <richlowe@richlowe.net>
Ported-by: Giuseppe Di Natale <dinatale2@llnl.gov>
OpenZFS-issue: https://www.illumos.org/issues/8966
OpenZFS-commit: https://github.com/openzfs/openzfs/commit/c95549fcdc
Closes #7141
(cherry picked from commit a196b3bc3dcc14bda32b2fbed40d5e436319aca6)
Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
---
module/zfs/zfs_acl.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/module/zfs/zfs_acl.c b/module/zfs/zfs_acl.c
index 7ddedeaaf..1fcfca0c7 100644
--- a/module/zfs/zfs_acl.c
+++ b/module/zfs/zfs_acl.c
@@ -1323,6 +1323,7 @@ zfs_aclset_common(znode_t *zp, zfs_acl_t *aclp, cred_t *cr, dmu_tx_t *tx)
sa_bulk_attr_t bulk[5];
uint64_t ctime[2];
int count = 0;
+ zfs_acl_phys_t acl_phys;
mode = zp->z_mode;
@@ -1369,7 +1370,6 @@ zfs_aclset_common(znode_t *zp, zfs_acl_t *aclp, cred_t *cr, dmu_tx_t *tx)
} else { /* Painful legacy way */
zfs_acl_node_t *aclnode;
uint64_t off = 0;
- zfs_acl_phys_t acl_phys;
uint64_t aoid;
if ((error = sa_lookup(zp->z_sa_hdl, SA_ZPL_ZNODE_ACL(zfsvfs),
--
2.14.2
@@ -1,145 +0,0 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Brian Behlendorf <behlendorf1@llnl.gov>
Date: Thu, 8 Feb 2018 14:27:59 -0800
Subject: [PATCH] Linux 4.16 compat: inode_set_iversion()
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
A new interface was added to manipulate the version field of an
inode. Add a inode_set_iversion() wrapper for older kernels and
use the new interface when available.
The i_version field was dropped from the trace point due to the
switch to an atomic64_t i_version type.
Reviewed-by: Olaf Faaland <faaland1@llnl.gov>
Reviewed-by: Giuseppe Di Natale <dinatale2@llnl.gov>
Reviewed-by: Chunwei Chen <david.chen@nutanix.com>
Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Closes #7148
(cherry picked from commit 310e63dfd18f59ad583631dfa2f55d40cedf1415)
Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
---
include/linux/vfs_compat.h | 14 ++++++++++++++
include/sys/trace_acl.h | 6 ++----
module/zfs/zpl_super.c | 2 +-
config/kernel-inode-set-iversion.m4 | 19 +++++++++++++++++++
config/kernel.m4 | 1 +
5 files changed, 37 insertions(+), 5 deletions(-)
create mode 100644 config/kernel-inode-set-iversion.m4
diff --git a/include/linux/vfs_compat.h b/include/linux/vfs_compat.h
index 6111f0afc..f51ff887d 100644
--- a/include/linux/vfs_compat.h
+++ b/include/linux/vfs_compat.h
@@ -578,4 +578,18 @@ current_time(struct inode *ip)
}
#endif
+/*
+ * 4.16 API change
+ * Added iversion interface for managing inode version field.
+ */
+#ifdef HAVE_INODE_SET_IVERSION
+#include <linux/iversion.h>
+#else
+static inline void
+inode_set_iversion(struct inode *ip, u64 val)
+{
+ ip->i_version = val;
+}
+#endif
+
#endif /* _ZFS_VFS_H */
diff --git a/include/sys/trace_acl.h b/include/sys/trace_acl.h
index 1057e560b..610bbe29c 100644
--- a/include/sys/trace_acl.h
+++ b/include/sys/trace_acl.h
@@ -68,7 +68,6 @@ DECLARE_EVENT_CLASS(zfs_ace_class,
__field(uint32_t, i_gid)
__field(unsigned long, i_ino)
__field(unsigned int, i_nlink)
- __field(u64, i_version)
__field(loff_t, i_size)
__field(unsigned int, i_blkbits)
__field(unsigned short, i_bytes)
@@ -103,7 +102,6 @@ DECLARE_EVENT_CLASS(zfs_ace_class,
__entry->i_gid = KGID_TO_SGID(ZTOI(zn)->i_gid);
__entry->i_ino = zn->z_inode.i_ino;
__entry->i_nlink = zn->z_inode.i_nlink;
- __entry->i_version = zn->z_inode.i_version;
__entry->i_size = zn->z_inode.i_size;
__entry->i_blkbits = zn->z_inode.i_blkbits;
__entry->i_bytes = zn->z_inode.i_bytes;
@@ -121,7 +119,7 @@ DECLARE_EVENT_CLASS(zfs_ace_class,
"mapcnt %llu size %llu pflags %llu "
"sync_cnt %u mode 0x%x is_sa %d "
"is_mapped %d is_ctldir %d is_stale %d inode { "
- "uid %u gid %u ino %lu nlink %u version %llu size %lli "
+ "uid %u gid %u ino %lu nlink %u size %lli "
"blkbits %u bytes %u mode 0x%x generation %x } } "
"ace { type %u flags %u access_mask %u } mask_matched %u",
__entry->z_id, __entry->z_unlinked, __entry->z_atime_dirty,
@@ -131,7 +129,7 @@ DECLARE_EVENT_CLASS(zfs_ace_class,
__entry->z_is_sa, __entry->z_is_mapped,
__entry->z_is_ctldir, __entry->z_is_stale, __entry->i_uid,
__entry->i_gid, __entry->i_ino, __entry->i_nlink,
- __entry->i_version, __entry->i_size, __entry->i_blkbits,
+ __entry->i_size, __entry->i_blkbits,
__entry->i_bytes, __entry->i_mode, __entry->i_generation,
__entry->z_type, __entry->z_flags, __entry->z_access_mask,
__entry->mask_matched)
diff --git a/module/zfs/zpl_super.c b/module/zfs/zpl_super.c
index b6ef60277..25e75a897 100644
--- a/module/zfs/zpl_super.c
+++ b/module/zfs/zpl_super.c
@@ -36,7 +36,7 @@ zpl_inode_alloc(struct super_block *sb)
struct inode *ip;
VERIFY3S(zfs_inode_alloc(sb, &ip), ==, 0);
- ip->i_version = 1;
+ inode_set_iversion(ip, 1);
return (ip);
}
diff --git a/config/kernel-inode-set-iversion.m4 b/config/kernel-inode-set-iversion.m4
new file mode 100644
index 000000000..9a7d7890e
--- /dev/null
+++ b/config/kernel-inode-set-iversion.m4
@@ -0,0 +1,19 @@
+dnl #
+dnl # 4.16 API change
+dnl # inode_set_iversion introduced to set i_version
+dnl #
+AC_DEFUN([ZFS_AC_KERNEL_INODE_SET_IVERSION], [
+ AC_MSG_CHECKING([whether inode_set_iversion() exists])
+ ZFS_LINUX_TRY_COMPILE([
+ #include <linux/iversion.h>
+ ],[
+ struct inode inode;
+ inode_set_iversion(&inode, 1);
+ ],[
+ AC_MSG_RESULT(yes)
+ AC_DEFINE(HAVE_INODE_SET_IVERSION, 1,
+ [inode_set_iversion() exists])
+ ],[
+ AC_MSG_RESULT(no)
+ ])
+])
diff --git a/config/kernel.m4 b/config/kernel.m4
index b759ccd39..b83f021e8 100644
--- a/config/kernel.m4
+++ b/config/kernel.m4
@@ -65,6 +65,7 @@ AC_DEFUN([ZFS_AC_CONFIG_KERNEL], [
ZFS_AC_KERNEL_INODE_OPERATIONS_SET_ACL
ZFS_AC_KERNEL_INODE_OPERATIONS_GETATTR
ZFS_AC_KERNEL_INODE_SET_FLAGS
+ ZFS_AC_KERNEL_INODE_SET_IVERSION
ZFS_AC_KERNEL_GET_ACL_HANDLE_CACHE
ZFS_AC_KERNEL_SHOW_OPTIONS
ZFS_AC_KERNEL_FILE_INODE
--
2.14.2

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