summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorArchzfs Buildbot2023-04-04 02:29:42 +0000
committerArchzfs Buildbot2023-04-04 02:29:42 +0000
commit32a43986e8f1077756893bfbe3471978b109e642 (patch)
treeb679318c9dcfc90b26379d661cc370dfb6084bc0
parent62457fe45705337a324d06be0f5e494b4d8ff004 (diff)
downloadaur-32a43986e8f1077756893bfbe3471978b109e642.tar.gz
Semi-automated update for kernel 6.1.22-1 + zfs 2.1.9
-rw-r--r--.SRCINFO8
-rw-r--r--PKGBUILD16
-rw-r--r--linux-6.3-compat-add-another-bdev_io_acct-case.patch193
3 files changed, 209 insertions, 8 deletions
diff --git a/.SRCINFO b/.SRCINFO
index 3f8f7592bfa5..9adaa93c6305 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -1,15 +1,17 @@
pkgbase = zfs-linux-lts
- pkgver = 2.1.9_6.1.20.1
+ pkgver = 2.1.9_6.1.22.1
pkgrel = 1
url = https://openzfs.org/
arch = x86_64
license = CDDL
- makedepends = linux-lts-headers=6.1.20-1
+ makedepends = linux-lts-headers=6.1.22-1
depends = kmod
depends = zfs-utils=2.1.9
- depends = linux-lts=6.1.20-1
+ depends = linux-lts=6.1.22-1
source = https://github.com/openzfs/zfs/releases/download/zfs-2.1.9/zfs-2.1.9.tar.gz
+ source = linux-6.3-compat-add-another-bdev_io_acct-case.patch
sha256sums = 6b172cdf2eb54e17fcd68f900fab33c1430c5c59848fa46fab83614922fe50f6
+ sha256sums = 14b099062abdb8923266f8f39c50d4b98755e6324ae6ce36d322c361b85387ee
pkgname = zfs-linux-lts
pkgdesc = Kernel modules for the Zettabyte File System.
diff --git a/PKGBUILD b/PKGBUILD
index 49b573288444..84bf6d9a754f 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -18,19 +18,25 @@
pkgbase="zfs-linux-lts"
pkgname=("zfs-linux-lts" "zfs-linux-lts-headers")
_zfsver="2.1.9"
-_kernelver="6.1.20-1"
-_kernelver_full="6.1.20-1"
-_extramodules="6.1.20-1-lts"
+_kernelver="6.1.22-1"
+_kernelver_full="6.1.22-1"
+_extramodules="6.1.22-1-lts"
pkgver="${_zfsver}_$(echo ${_kernelver} | sed s/-/./g)"
pkgrel=1
makedepends=("linux-lts-headers=${_kernelver}")
arch=("x86_64")
url="https://openzfs.org/"
-source=("https://github.com/openzfs/zfs/releases/download/zfs-${_zfsver}/zfs-${_zfsver}.tar.gz")
-sha256sums=("6b172cdf2eb54e17fcd68f900fab33c1430c5c59848fa46fab83614922fe50f6")
+source=("https://github.com/openzfs/zfs/releases/download/zfs-${_zfsver}/zfs-${_zfsver}.tar.gz"
+ "linux-6.3-compat-add-another-bdev_io_acct-case.patch")
+sha256sums=("6b172cdf2eb54e17fcd68f900fab33c1430c5c59848fa46fab83614922fe50f6"
+ "14b099062abdb8923266f8f39c50d4b98755e6324ae6ce36d322c361b85387ee")
license=("CDDL")
depends=("kmod" "zfs-utils=${_zfsver}" "linux-lts=${_kernelver}")
+prepare() {
+ cd "${srcdir}/zfs-${_zfsver}"
+ patch -Np1 -i ${srcdir}/linux-6.3-compat-add-another-bdev_io_acct-case.patch
+}
build() {
cd "${srcdir}/zfs-${_zfsver}"
diff --git a/linux-6.3-compat-add-another-bdev_io_acct-case.patch b/linux-6.3-compat-add-another-bdev_io_acct-case.patch
new file mode 100644
index 000000000000..ff1a13937850
--- /dev/null
+++ b/linux-6.3-compat-add-another-bdev_io_acct-case.patch
@@ -0,0 +1,193 @@
+From 1a951502f0b4200a13f23f0d2f5759ef60188c17 Mon Sep 17 00:00:00 2001
+From: Rich Ercolani <214141+rincebrain@users.noreply.github.com>
+Date: Mon, 27 Mar 2023 14:29:19 -0400
+Subject: [PATCH] linux 6.3 compat: add another bdev_io_acct case
+
+Linux 6.3+, and backports from it (6.2.8+), changed the
+signatures on bdev_io_{start,end}_acct. Add a case for it.
+
+Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
+Signed-off-by: Rich Ercolani <rincebrain@gmail.com>
+Closes #14658
+Closes #14668
+---
+ config/kernel-generic_io_acct.m4 | 98 ++++++++++++-------
+ include/os/linux/kernel/linux/blkdev_compat.h | 10 +-
+ 2 files changed, 69 insertions(+), 39 deletions(-)
+
+diff --git a/config/kernel-generic_io_acct.m4 b/config/kernel-generic_io_acct.m4
+index a8a448c6fe9..a6a10900429 100644
+--- a/config/kernel-generic_io_acct.m4
++++ b/config/kernel-generic_io_acct.m4
+@@ -2,7 +2,20 @@ dnl #
+ dnl # Check for generic io accounting interface.
+ dnl #
+ AC_DEFUN([ZFS_AC_KERNEL_SRC_GENERIC_IO_ACCT], [
+- ZFS_LINUX_TEST_SRC([bdev_io_acct], [
++ ZFS_LINUX_TEST_SRC([bdev_io_acct_63], [
++ #include <linux/blkdev.h>
++ ], [
++ struct block_device *bdev = NULL;
++ struct bio *bio = NULL;
++ unsigned long passed_time = 0;
++ unsigned long start_time;
++
++ start_time = bdev_start_io_acct(bdev, bio_op(bio),
++ passed_time);
++ bdev_end_io_acct(bdev, bio_op(bio), bio_sectors(bio), start_time);
++ ])
++
++ ZFS_LINUX_TEST_SRC([bdev_io_acct_old], [
+ #include <linux/blkdev.h>
+ ], [
+ struct block_device *bdev = NULL;
+@@ -63,74 +76,85 @@ AC_DEFUN([ZFS_AC_KERNEL_SRC_GENERIC_IO_ACCT], [
+
+ AC_DEFUN([ZFS_AC_KERNEL_GENERIC_IO_ACCT], [
+ dnl #
+- dnl # 5.19 API,
++ dnl # Linux 6.3, and then backports thereof, changed
++ dnl # the signatures on bdev_start_io_acct/bdev_end_io_acct
+ dnl #
+- dnl # disk_start_io_acct() and disk_end_io_acct() have been replaced by
+- dnl # bdev_start_io_acct() and bdev_end_io_acct().
+- dnl #
+- AC_MSG_CHECKING([whether generic bdev_*_io_acct() are available])
+- ZFS_LINUX_TEST_RESULT([bdev_io_acct], [
++ AC_MSG_CHECKING([whether 6.3+ bdev_*_io_acct() are available])
++ ZFS_LINUX_TEST_RESULT([bdev_io_acct_63], [
+ AC_MSG_RESULT(yes)
+- AC_DEFINE(HAVE_BDEV_IO_ACCT, 1, [bdev_*_io_acct() available])
++ AC_DEFINE(HAVE_BDEV_IO_ACCT_63, 1, [bdev_*_io_acct() available])
+ ], [
+ AC_MSG_RESULT(no)
+
+ dnl #
+- dnl # 5.12 API,
++ dnl # 5.19 API,
+ dnl #
+- dnl # bio_start_io_acct() and bio_end_io_acct() became GPL-exported
+- dnl # so use disk_start_io_acct() and disk_end_io_acct() instead
++ dnl # disk_start_io_acct() and disk_end_io_acct() have been replaced by
++ dnl # bdev_start_io_acct() and bdev_end_io_acct().
+ dnl #
+- AC_MSG_CHECKING([whether generic disk_*_io_acct() are available])
+- ZFS_LINUX_TEST_RESULT([disk_io_acct], [
++ AC_MSG_CHECKING([whether pre-6.3 bdev_*_io_acct() are available])
++ ZFS_LINUX_TEST_RESULT([bdev_io_acct_old], [
+ AC_MSG_RESULT(yes)
+- AC_DEFINE(HAVE_DISK_IO_ACCT, 1, [disk_*_io_acct() available])
++ AC_DEFINE(HAVE_BDEV_IO_ACCT_OLD, 1, [bdev_*_io_acct() available])
+ ], [
+ AC_MSG_RESULT(no)
+-
+ dnl #
+- dnl # 5.7 API,
++ dnl # 5.12 API,
+ dnl #
+- dnl # Added bio_start_io_acct() and bio_end_io_acct() helpers.
++ dnl # bio_start_io_acct() and bio_end_io_acct() became GPL-exported
++ dnl # so use disk_start_io_acct() and disk_end_io_acct() instead
+ dnl #
+- AC_MSG_CHECKING([whether generic bio_*_io_acct() are available])
+- ZFS_LINUX_TEST_RESULT([bio_io_acct], [
++ AC_MSG_CHECKING([whether generic disk_*_io_acct() are available])
++ ZFS_LINUX_TEST_RESULT([disk_io_acct], [
+ AC_MSG_RESULT(yes)
+- AC_DEFINE(HAVE_BIO_IO_ACCT, 1, [bio_*_io_acct() available])
++ AC_DEFINE(HAVE_DISK_IO_ACCT, 1, [disk_*_io_acct() available])
+ ], [
+ AC_MSG_RESULT(no)
+
+ dnl #
+- dnl # 4.14 API,
++ dnl # 5.7 API,
+ dnl #
+- dnl # generic_start_io_acct/generic_end_io_acct now require
+- dnl # request_queue to be provided. No functional changes,
+- dnl # but preparation for inflight accounting.
++ dnl # Added bio_start_io_acct() and bio_end_io_acct() helpers.
+ dnl #
+- AC_MSG_CHECKING([whether generic_*_io_acct wants 4 args])
+- ZFS_LINUX_TEST_RESULT_SYMBOL([generic_acct_4args],
+- [generic_start_io_acct], [block/bio.c], [
++ AC_MSG_CHECKING([whether generic bio_*_io_acct() are available])
++ ZFS_LINUX_TEST_RESULT([bio_io_acct], [
+ AC_MSG_RESULT(yes)
+- AC_DEFINE(HAVE_GENERIC_IO_ACCT_4ARG, 1,
+- [generic_*_io_acct() 4 arg available])
++ AC_DEFINE(HAVE_BIO_IO_ACCT, 1, [bio_*_io_acct() available])
+ ], [
+ AC_MSG_RESULT(no)
+
+ dnl #
+- dnl # 3.19 API addition
++ dnl # 4.14 API,
+ dnl #
+- dnl # torvalds/linux@394ffa50 allows us to increment
+- dnl # iostat counters without generic_make_request().
++ dnl # generic_start_io_acct/generic_end_io_acct now require
++ dnl # request_queue to be provided. No functional changes,
++ dnl # but preparation for inflight accounting.
+ dnl #
+- AC_MSG_CHECKING(
+- [whether generic_*_io_acct wants 3 args])
+- ZFS_LINUX_TEST_RESULT_SYMBOL([generic_acct_3args],
++ AC_MSG_CHECKING([whether generic_*_io_acct wants 4 args])
++ ZFS_LINUX_TEST_RESULT_SYMBOL([generic_acct_4args],
+ [generic_start_io_acct], [block/bio.c], [
+ AC_MSG_RESULT(yes)
+- AC_DEFINE(HAVE_GENERIC_IO_ACCT_3ARG, 1,
+- [generic_*_io_acct() 3 arg available])
++ AC_DEFINE(HAVE_GENERIC_IO_ACCT_4ARG, 1,
++ [generic_*_io_acct() 4 arg available])
+ ], [
+ AC_MSG_RESULT(no)
++
++ dnl #
++ dnl # 3.19 API addition
++ dnl #
++ dnl # torvalds/linux@394ffa50 allows us to increment
++ dnl # iostat counters without generic_make_request().
++ dnl #
++ AC_MSG_CHECKING(
++ [whether generic_*_io_acct wants 3 args])
++ ZFS_LINUX_TEST_RESULT_SYMBOL([generic_acct_3args],
++ [generic_start_io_acct], [block/bio.c], [
++ AC_MSG_RESULT(yes)
++ AC_DEFINE(HAVE_GENERIC_IO_ACCT_3ARG, 1,
++ [generic_*_io_acct() 3 arg available])
++ ], [
++ AC_MSG_RESULT(no)
++ ])
+ ])
+ ])
+ ])
+diff --git a/include/os/linux/kernel/linux/blkdev_compat.h b/include/os/linux/kernel/linux/blkdev_compat.h
+index b1daa5ed9ce..11ecfd8caa3 100644
+--- a/include/os/linux/kernel/linux/blkdev_compat.h
++++ b/include/os/linux/kernel/linux/blkdev_compat.h
+@@ -581,7 +581,10 @@ blk_generic_start_io_acct(struct request_queue *q __attribute__((unused)),
+ struct gendisk *disk __attribute__((unused)),
+ int rw __attribute__((unused)), struct bio *bio)
+ {
+-#if defined(HAVE_BDEV_IO_ACCT)
++#if defined(HAVE_BDEV_IO_ACCT_63)
++ return (bdev_start_io_acct(bio->bi_bdev, bio_op(bio),
++ jiffies));
++#elif defined(HAVE_BDEV_IO_ACCT_OLD)
+ return (bdev_start_io_acct(bio->bi_bdev, bio_sectors(bio),
+ bio_op(bio), jiffies));
+ #elif defined(HAVE_DISK_IO_ACCT)
+@@ -607,7 +610,10 @@ blk_generic_end_io_acct(struct request_queue *q __attribute__((unused)),
+ struct gendisk *disk __attribute__((unused)),
+ int rw __attribute__((unused)), struct bio *bio, unsigned long start_time)
+ {
+-#if defined(HAVE_BDEV_IO_ACCT)
++#if defined(HAVE_BDEV_IO_ACCT_63)
++ bdev_end_io_acct(bio->bi_bdev, bio_op(bio), bio_sectors(bio),
++ start_time);
++#elif defined(HAVE_BDEV_IO_ACCT_OLD)
+ bdev_end_io_acct(bio->bi_bdev, bio_op(bio), start_time);
+ #elif defined(HAVE_DISK_IO_ACCT)
+ disk_end_io_acct(disk, bio_op(bio), start_time);