Add Linux 4.14 compat patch to SPL packages

pull/200/head
Jesus Alvarez 7 years ago
parent 4d8258f606
commit d1066c9624
  1. 23
      build.sh
  2. 2
      src/kernels/archiso.sh
  3. 34
      src/spl/0001-Linux-4.14-compat-vfs_read-vfs_write.patch
  4. 6
      src/spl/PKGBUILD.sh

@ -133,19 +133,26 @@ generate_package_files() {
if [[ ! -z ${zfs_utils_pkgbuild_path} ]]; then
msg2 "Creating spl-utils PKGBUILD"
run_cmd_no_output "source ${script_dir}/src/spl-utils/PKGBUILD.sh"
msg2 "Copying spl-utils patches (if any)"
run_cmd_no_output "cp ${script_dir}/src/spl-utils/*.patch ${spl_utils_pkgbuild_path}/"
msg2 "Copying zfs-utils patches (if any)"
run_cmd_no_output "cp ${script_dir}/src/zfs-utils/*.patch ${zfs_utils_pkgbuild_path}/"
msg2 "Creating zfs-utils PKGBUILD"
run_cmd_no_output "source ${script_dir}/src/zfs-utils/PKGBUILD.sh"
msg2 "Copying zfs-utils.install"
run_cmd_no_output "cp ${script_dir}/src/zfs-utils/zfs-utils.install ${zfs_utils_pkgbuild_path}/zfs-utils.install"
msg2 "Copying zfs-utils.bash-completion"
run_cmd_no_output "cp ${script_dir}/src/zfs-utils/zfs-utils.bash-completion-r1 ${zfs_utils_pkgbuild_path}/zfs-utils.bash-completion-r1"
msg2 "Copying zfs-utils.initcpio.hook"
run_cmd_no_output "cp ${script_dir}/src/zfs-utils/zfs-utils.initcpio.hook ${zfs_utils_pkgbuild_path}/zfs-utils.initcpio.hook"
msg2 "Copying zfs-utils.initcpio.install"
run_cmd_no_output "cp ${script_dir}/src/zfs-utils/zfs-utils.initcpio.install ${zfs_utils_pkgbuild_path}/zfs-utils.initcpio.install"
msg2 "Copying zfs-utils manual patch"
run_cmd_no_output "cp ${script_dir}/src/zfs-utils/0001-Correct-man-page-generation.patch ${zfs_utils_pkgbuild_path}/0001-Correct-man-page-generation.patch"
fi
if [[ ! -z ${zfs_pkgbuild_path} ]]; then
@ -155,16 +162,19 @@ generate_package_files() {
msg2 "Creating spl PKGBUILD"
run_cmd_no_output "source ${script_dir}/src/spl/PKGBUILD.sh"
msg2 "Copying spl patches (if any)"
run_cmd_no_output "cp ${script_dir}/src/spl/*.patch ${spl_pkgbuild_path}/"
msg2 "Creating spl.install"
run_cmd_no_output "source ${script_dir}/src/spl/spl.install.sh"
msg2 "Copying linux4.14.patch"
run_cmd_no_output "cp ${script_dir}/src/spl/linux4.14.patch ${spl_pkgbuild_path}/linux4.14.patch"
msg2 "Creating zfs PKGBUILD"
run_cmd_no_output "source ${script_dir}/src/zfs/PKGBUILD.sh"
msg2 "Creating zfs.install"
run_cmd_no_output "source ${script_dir}/src/zfs/zfs.install.sh"
msg2 "Copying zfs patches (if any)"
run_cmd_no_output "cp ${script_dir}/src/zfs/*.patch ${zfs_pkgbuild_path}/"
fi
if [[ ! -z ${zfs_dkms_pkgbuild_path} ]]; then
@ -235,11 +245,6 @@ build_packages() {
error "A problem occurred building the package"
exit 1
fi
# if [[ "${pkg}" == "spl-linux-hardened-git" ]]; then
# msg2 "${pkg} package files:"
# run_cmd "tree ${chroot_path}/build/${pkg}/pkg"
# exit
# fi
done
run_cmd "find . -iname \"*.log\" -print -exec rm {} \\;"
}

@ -4,7 +4,7 @@ mode_desc="Select and use the packages for the archiso linux kernel"
# Kernel versions for LTS packages
pkgrel="1"
kernel_version="4.13.3-1"
kernel_version="4.13.12-1"
header="\
# Maintainer: Jesus Alvarez <jeezusjr at gmail dot com>

@ -1,5 +1,30 @@
From ed19bccfb651843fa208232b3a2d3d22a4152bc8 Mon Sep 17 00:00:00 2001
From: Brian Behlendorf <behlendorf1@llnl.gov>
Date: Wed, 15 Nov 2017 17:19:23 -0800
Subject: [PATCH] Linux 4.14 compat: vfs_read & vfs_write
The kernel_read & kernel_write functions have always wrapped the
vfs_read & vfs_write functions respectively. However, they could
not be used by vn_rdwr() since the offset wasn't passed as a
pointer. This prevented us from being able to properly update
the file offset.
Linux 4.14 unexported vfs_read & vfs_write but also changed the
signature of kernel_read & kernel_write to provide the needed
functionality. Use these updated functions when available.
Reviewed-by: Pritam Baral <pritam@pritambaral.com>
Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Closes #656
Closes #667
---
config/spl-build.m4 | 60 +++++++++++++++++++++++++++++++++++++++++++++
include/linux/file_compat.h | 41 +++++++++++++++++++++++++++++++
module/spl/spl-vnode.c | 21 +++-------------
3 files changed, 105 insertions(+), 17 deletions(-)
diff --git a/config/spl-build.m4 b/config/spl-build.m4
index 8e9dc99f..7b66f2c8 100644
index 8e9dc99..7b66f2c 100644
--- a/config/spl-build.m4
+++ b/config/spl-build.m4
@@ -52,6 +52,8 @@ AC_DEFUN([SPL_AC_CONFIG_KERNEL], [
@ -74,7 +99,7 @@ index 8e9dc99f..7b66f2c8 100644
+ EXTRA_KCFLAGS="$tmp_flags"
+])
diff --git a/include/linux/file_compat.h b/include/linux/file_compat.h
index 7d61ba5f..55ba2cc7 100644
index 7d61ba5..55ba2cc 100644
--- a/include/linux/file_compat.h
+++ b/include/linux/file_compat.h
@@ -26,6 +26,7 @@
@ -133,7 +158,7 @@ index 7d61ba5f..55ba2cc7 100644
#define spl_filp_fsync(fp, sync) vfs_fsync(fp, sync)
#else
diff --git a/module/spl/spl-vnode.c b/module/spl/spl-vnode.c
index 0e4c386a..19b3b76c 100644
index 0e4c386..19b3b76 100644
--- a/module/spl/spl-vnode.c
+++ b/module/spl/spl-vnode.c
@@ -211,35 +211,22 @@ int
@ -176,3 +201,6 @@ index 0e4c386a..19b3b76c 100644
fp->f_pos = offset;
if (rc < 0)
--
2.15.1

@ -9,8 +9,8 @@ pkgrel=${spl_pkgrel}
makedepends=(${linux_headers_depends} ${spl_makedepends})
arch=("x86_64")
url="http://zfsonlinux.org/"
source=("${spl_src_target}" "linux4.14.patch")
sha256sums=("${spl_src_hash}" "ed304df2b990f095496582465f40e509cc918d581420901b205975bbf1926072")
source=("${spl_src_target}" '0001-Linux-4.14-compat-vfs_read-vfs_write.patch')
sha256sums=("${spl_src_hash}" 'd20506fbe6e9ee928005e8a73c03e4b4d207268348f684b9c7a33301067793b8')
license=("GPL")
depends=("${spl_utils_pkgname}" "kmod" ${linux_depends})
@ -57,7 +57,7 @@ EOF
if [[ ${archzfs_package_group} =~ -git$ ]]; then
sed -i "/^build()/i pkgver() {\n cd \"${spl_workdir}\"\n echo \$(git describe --long | sed 's/^spl-//;s/\\\([^-]*-g\\\)/r\\\1/;s/-/./g').${kernel_version_full_pkgver}\n}" ${spl_pkgbuild_path}/PKGBUILD
else
sed -i "/^build()/i prepare() {\n cd \"${spl_workdir}\"\n patch -Np1 -i \${srcdir}/linux4.14.patch\n}" ${spl_pkgbuild_path}/PKGBUILD
sed -i "/^build()/i prepare() {\n cd \"${spl_workdir}\"\n patch -Np1 -i \${srcdir}/0001-Linux-4.14-compat-vfs_read-vfs_write.patch\n}" ${spl_pkgbuild_path}/PKGBUILD
fi
pkgbuild_cleanup "${spl_pkgbuild_path}/PKGBUILD"

Loading…
Cancel
Save