Add release for Linux 5.14
This change adds the initial release of Linux 5.14 for the Proxmox Edge kernels.
This commit is contained in:
commit
1a5b2830d0
11 changed files with 236 additions and 6 deletions
2
.github/workflows/watch.yml
vendored
2
.github/workflows/watch.yml
vendored
|
@ -11,7 +11,7 @@ jobs:
|
||||||
runs-on: [ubuntu-latest]
|
runs-on: [ubuntu-latest]
|
||||||
strategy:
|
strategy:
|
||||||
matrix:
|
matrix:
|
||||||
branch: ['v5.10.x', 'v5.13.x']
|
branch: ['v5.10.x', 'v5.13.x', 'v5.14.x']
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout Sources
|
- name: Checkout Sources
|
||||||
uses: actions/checkout@v2
|
uses: actions/checkout@v2
|
||||||
|
|
|
@ -2,6 +2,7 @@
|
||||||
Custom Linux kernels for Proxmox VE 6.
|
Custom Linux kernels for Proxmox VE 6.
|
||||||
|
|
||||||
#### Versions
|
#### Versions
|
||||||
|
1. Linux 5.14 (Stable)
|
||||||
1. Linux 5.13 (Stable)
|
1. Linux 5.13 (Stable)
|
||||||
1. Linux 5.12 (Stable) [EOL]
|
1. Linux 5.12 (Stable) [EOL]
|
||||||
1. Linux 5.11 (Stable) [EOL]
|
1. Linux 5.11 (Stable) [EOL]
|
||||||
|
|
BIN
crack.bundle
BIN
crack.bundle
Binary file not shown.
7
debian/changelog
vendored
7
debian/changelog
vendored
|
@ -1,3 +1,10 @@
|
||||||
|
pve-kernel (5.14.0-1) edge; urgency=medium
|
||||||
|
|
||||||
|
* Update to Linux 5.14.
|
||||||
|
* Update to OpenZFS 2.1.0.
|
||||||
|
|
||||||
|
-- Fabian Mastenbroek <mail.fabianm@gmail.com> Mon, 30 Aug 2021 11:00:00 +0000
|
||||||
|
|
||||||
pve-kernel (5.13.0-1) edge; urgency=medium
|
pve-kernel (5.13.0-1) edge; urgency=medium
|
||||||
|
|
||||||
* Update to Linux 5.13.
|
* Update to Linux 5.13.
|
||||||
|
|
3
debian/config/config.pve
vendored
3
debian/config/config.pve
vendored
|
@ -23,6 +23,8 @@ CONFIG_INPUT_EVBUG=n
|
||||||
CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=n
|
CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=n
|
||||||
CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y
|
CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y
|
||||||
CONFIG_MODULE_SIG=n
|
CONFIG_MODULE_SIG=n
|
||||||
|
CONFIG_MODULE_SIG_KEY=""
|
||||||
|
CONFIG_MODULE_SIG_ALL=n
|
||||||
CONFIG_MEMCG_DISABLED=n
|
CONFIG_MEMCG_DISABLED=n
|
||||||
CONFIG_MEMCG_SWAP_ENABLED=y
|
CONFIG_MEMCG_SWAP_ENABLED=y
|
||||||
CONFIG_HYPERV=y
|
CONFIG_HYPERV=y
|
||||||
|
@ -52,6 +54,7 @@ CONFIG_UNWINDER_ORC=n
|
||||||
CONFIG_UNWINDER_GUESS=n
|
CONFIG_UNWINDER_GUESS=n
|
||||||
CONFIG_UNWINDER_FRAME_POINTER=y
|
CONFIG_UNWINDER_FRAME_POINTER=y
|
||||||
CONFIG_SYSTEM_TRUSTED_KEYS=""
|
CONFIG_SYSTEM_TRUSTED_KEYS=""
|
||||||
|
CONFIG_SYSTEM_REVOCATION_KEYS=""
|
||||||
CONFIG_SECURITY_LOCKDOWN_LSM=n
|
CONFIG_SECURITY_LOCKDOWN_LSM=n
|
||||||
CONFIG_SECURITY_LOCKDOWN_LSM_EARLY=n
|
CONFIG_SECURITY_LOCKDOWN_LSM_EARLY=n
|
||||||
CONFIG_LSM="yama,integrity,apparmor"
|
CONFIG_LSM="yama,integrity,apparmor"
|
||||||
|
|
2
debian/patches/series.zfs
vendored
2
debian/patches/series.zfs
vendored
|
@ -7,3 +7,5 @@ zfs/0006-dont-symlink-zed-scripts.patch
|
||||||
zfs/0007-Use-installed-python3.patch
|
zfs/0007-Use-installed-python3.patch
|
||||||
zfs/0008-Add-systemd-unit-for-importing-specific-pools.patch
|
zfs/0008-Add-systemd-unit-for-importing-specific-pools.patch
|
||||||
zfs/0009-Patch-move-manpage-arcstat-1-to-arcstat-8.patch
|
zfs/0009-Patch-move-manpage-arcstat-1-to-arcstat-8.patch
|
||||||
|
zfs/0010-linux-5.14-compat-pg-dirty.patch
|
||||||
|
zfs/0011-linux-5.14-compat-blk_alloc_disk.patch
|
||||||
|
|
|
@ -21,8 +21,8 @@ index c1111c73a..c5e12c2c6 100644
|
||||||
[Service]
|
[Service]
|
||||||
Type=oneshot
|
Type=oneshot
|
||||||
RemainAfterExit=yes
|
RemainAfterExit=yes
|
||||||
-ExecStart=@sbindir@/zpool import -aN -o cachefile=none ${ZPOOL_IMPORT_OPTS}
|
-ExecStart=@sbindir@/zpool import -aN -o cachefile=none $ZPOOL_IMPORT_OPTS
|
||||||
+ExecStart=@sbindir@/zpool import -aN -d /dev/disk/by-id -o cachefile=none ${ZPOOL_IMPORT_OPTS}
|
+ExecStart=@sbindir@/zpool import -aN -d /dev/disk/by-id -o cachefile=none $ZPOOL_IMPORT_OPTS
|
||||||
|
|
||||||
[Install]
|
[Install]
|
||||||
WantedBy=zfs-import.target
|
WantedBy=zfs-import.target
|
||||||
|
|
84
debian/patches/zfs/0010-linux-5.14-compat-pg-dirty.patch
vendored
Normal file
84
debian/patches/zfs/0010-linux-5.14-compat-pg-dirty.patch
vendored
Normal file
|
@ -0,0 +1,84 @@
|
||||||
|
diff --git a/config/kernel-vfs-set_page_dirty.m4 b/config/kernel-vfs-set_page_dirty.m4
|
||||||
|
new file mode 100644
|
||||||
|
index 00000000000..a9d252e4e01
|
||||||
|
--- /dev/null
|
||||||
|
+++ b/config/kernel-vfs-set_page_dirty.m4
|
||||||
|
@@ -0,0 +1,34 @@
|
||||||
|
+dnl #
|
||||||
|
+dnl # Linux 5.14 adds a change to require set_page_dirty to be manually
|
||||||
|
+dnl # wired up in struct address_space_operations. Determine if this needs
|
||||||
|
+dnl # to be done. This patch set also introduced __set_page_dirty_nobuffers
|
||||||
|
+dnl # declaration in linux/pagemap.h, so these tests look for the presence
|
||||||
|
+dnl # of that function to tell the compiler to assign set_page_dirty in
|
||||||
|
+dnl # module/os/linux/zfs/zpl_file.c
|
||||||
|
+dnl #
|
||||||
|
+AC_DEFUN([ZFS_AC_KERNEL_SRC_VFS_SET_PAGE_DIRTY_NOBUFFERS], [
|
||||||
|
+ ZFS_LINUX_TEST_SRC([vfs_has_set_page_dirty_nobuffers], [
|
||||||
|
+ #include <linux/pagemap.h>
|
||||||
|
+ #include <linux/fs.h>
|
||||||
|
+
|
||||||
|
+ static const struct address_space_operations
|
||||||
|
+ aops __attribute__ ((unused)) = {
|
||||||
|
+ .set_page_dirty = __set_page_dirty_nobuffers,
|
||||||
|
+ };
|
||||||
|
+ ],[])
|
||||||
|
+])
|
||||||
|
+
|
||||||
|
+AC_DEFUN([ZFS_AC_KERNEL_VFS_SET_PAGE_DIRTY_NOBUFFERS], [
|
||||||
|
+ dnl #
|
||||||
|
+ dnl # Linux 5.14 change requires set_page_dirty() to be assigned
|
||||||
|
+ dnl # in address_space_operations()
|
||||||
|
+ dnl #
|
||||||
|
+ AC_MSG_CHECKING([__set_page_dirty_nobuffers exists])
|
||||||
|
+ ZFS_LINUX_TEST_RESULT([vfs_has_set_page_dirty_nobuffers], [
|
||||||
|
+ AC_MSG_RESULT([yes])
|
||||||
|
+ AC_DEFINE(HAVE_VFS_SET_PAGE_DIRTY_NOBUFFERS, 1,
|
||||||
|
+ [__set_page_dirty_nobuffers exists])
|
||||||
|
+ ],[
|
||||||
|
+ AC_MSG_RESULT([no])
|
||||||
|
+ ])
|
||||||
|
+])
|
||||||
|
diff --git a/config/kernel.m4 b/config/kernel.m4
|
||||||
|
index 7196e66ca28..5ea2286dbcc 100644
|
||||||
|
--- a/config/kernel.m4
|
||||||
|
+++ b/config/kernel.m4
|
||||||
|
@@ -132,6 +132,7 @@ AC_DEFUN([ZFS_AC_KERNEL_TEST_SRC], [
|
||||||
|
ZFS_AC_KERNEL_SRC_SIGNAL_STOP
|
||||||
|
ZFS_AC_KERNEL_SRC_SIGINFO
|
||||||
|
ZFS_AC_KERNEL_SRC_SET_SPECIAL_STATE
|
||||||
|
+ ZFS_AC_KERNEL_SRC_VFS_SET_PAGE_DIRTY_NOBUFFERS
|
||||||
|
|
||||||
|
AC_MSG_CHECKING([for available kernel interfaces])
|
||||||
|
ZFS_LINUX_TEST_COMPILE_ALL([kabi])
|
||||||
|
@@ -237,6 +238,7 @@ AC_DEFUN([ZFS_AC_KERNEL_TEST_RESULT], [
|
||||||
|
ZFS_AC_KERNEL_SIGNAL_STOP
|
||||||
|
ZFS_AC_KERNEL_SIGINFO
|
||||||
|
ZFS_AC_KERNEL_SET_SPECIAL_STATE
|
||||||
|
+ ZFS_AC_KERNEL_VFS_SET_PAGE_DIRTY_NOBUFFERS
|
||||||
|
])
|
||||||
|
|
||||||
|
dnl #
|
||||||
|
diff --git a/module/os/linux/zfs/zpl_file.c b/module/os/linux/zfs/zpl_file.c
|
||||||
|
index 0319148b983..63002fe3b93 100644
|
||||||
|
--- a/module/os/linux/zfs/zpl_file.c
|
||||||
|
+++ b/module/os/linux/zfs/zpl_file.c
|
||||||
|
@@ -33,6 +33,9 @@
|
||||||
|
#include <sys/zfs_vfsops.h>
|
||||||
|
#include <sys/zfs_vnops.h>
|
||||||
|
#include <sys/zfs_project.h>
|
||||||
|
+#ifdef HAVE_VFS_SET_PAGE_DIRTY_NOBUFFERS
|
||||||
|
+#include <linux/pagemap.h>
|
||||||
|
+#endif
|
||||||
|
|
||||||
|
/*
|
||||||
|
* When using fallocate(2) to preallocate space, inflate the requested
|
||||||
|
@@ -1018,6 +1021,9 @@ const struct address_space_operations zpl_address_space_operations = {
|
||||||
|
.writepage = zpl_writepage,
|
||||||
|
.writepages = zpl_writepages,
|
||||||
|
.direct_IO = zpl_direct_IO,
|
||||||
|
+#ifdef HAVE_VFS_SET_PAGE_DIRTY_NOBUFFERS
|
||||||
|
+ .set_page_dirty = __set_page_dirty_nobuffers,
|
||||||
|
+#endif
|
||||||
|
};
|
||||||
|
|
||||||
|
const struct file_operations zpl_file_operations = {
|
133
debian/patches/zfs/0011-linux-5.14-compat-blk_alloc_disk.patch
vendored
Normal file
133
debian/patches/zfs/0011-linux-5.14-compat-blk_alloc_disk.patch
vendored
Normal file
|
@ -0,0 +1,133 @@
|
||||||
|
diff --git a/config/kernel-make-request-fn.m4 b/config/kernel-make-request-fn.m4
|
||||||
|
index 290ef6b8da7..86b202a7a27 100644
|
||||||
|
--- a/config/kernel-make-request-fn.m4
|
||||||
|
+++ b/config/kernel-make-request-fn.m4
|
||||||
|
@@ -42,6 +42,13 @@ AC_DEFUN([ZFS_AC_KERNEL_SRC_MAKE_REQUEST_FN], [
|
||||||
|
struct block_device_operations o;
|
||||||
|
o.submit_bio = NULL;
|
||||||
|
])
|
||||||
|
+
|
||||||
|
+ ZFS_LINUX_TEST_SRC([blk_alloc_disk], [
|
||||||
|
+ #include <linux/blkdev.h>
|
||||||
|
+ ],[
|
||||||
|
+ struct gendisk *disk __attribute__ ((unused));
|
||||||
|
+ disk = blk_alloc_disk(NUMA_NO_NODE);
|
||||||
|
+ ])
|
||||||
|
])
|
||||||
|
|
||||||
|
AC_DEFUN([ZFS_AC_KERNEL_MAKE_REQUEST_FN], [
|
||||||
|
@@ -56,6 +63,19 @@ AC_DEFUN([ZFS_AC_KERNEL_MAKE_REQUEST_FN], [
|
||||||
|
|
||||||
|
AC_DEFINE(HAVE_SUBMIT_BIO_IN_BLOCK_DEVICE_OPERATIONS, 1,
|
||||||
|
[submit_bio is member of struct block_device_operations])
|
||||||
|
+
|
||||||
|
+ dnl #
|
||||||
|
+ dnl # Linux 5.14 API Change:
|
||||||
|
+ dnl # blk_alloc_queue() + alloc_disk() combo replaced by
|
||||||
|
+ dnl # a single call to blk_alloc_disk().
|
||||||
|
+ dnl #
|
||||||
|
+ AC_MSG_CHECKING([whether blk_alloc_disk() exists])
|
||||||
|
+ ZFS_LINUX_TEST_RESULT([blk_alloc_disk], [
|
||||||
|
+ AC_MSG_RESULT(yes)
|
||||||
|
+ AC_DEFINE([HAVE_BLK_ALLOC_DISK], 1, [blk_alloc_disk() exists])
|
||||||
|
+ ], [
|
||||||
|
+ AC_MSG_RESULT(no)
|
||||||
|
+ ])
|
||||||
|
],[
|
||||||
|
AC_MSG_RESULT(no)
|
||||||
|
|
||||||
|
diff --git a/module/os/linux/zfs/zvol_os.c b/module/os/linux/zfs/zvol_os.c
|
||||||
|
index 741979f11af..8b29d73a3e0 100644
|
||||||
|
--- a/module/os/linux/zfs/zvol_os.c
|
||||||
|
+++ b/module/os/linux/zfs/zvol_os.c
|
||||||
|
@@ -762,7 +762,7 @@ static struct block_device_operations zvol_ops = {
|
||||||
|
.getgeo = zvol_getgeo,
|
||||||
|
.owner = THIS_MODULE,
|
||||||
|
#ifdef HAVE_SUBMIT_BIO_IN_BLOCK_DEVICE_OPERATIONS
|
||||||
|
- .submit_bio = zvol_submit_bio,
|
||||||
|
+ .submit_bio = zvol_submit_bio,
|
||||||
|
#endif
|
||||||
|
};
|
||||||
|
|
||||||
|
@@ -795,13 +795,40 @@ zvol_alloc(dev_t dev, const char *name)
|
||||||
|
mutex_init(&zv->zv_state_lock, NULL, MUTEX_DEFAULT, NULL);
|
||||||
|
|
||||||
|
#ifdef HAVE_SUBMIT_BIO_IN_BLOCK_DEVICE_OPERATIONS
|
||||||
|
+#ifdef HAVE_BLK_ALLOC_DISK
|
||||||
|
+ zso->zvo_disk = blk_alloc_disk(NUMA_NO_NODE);
|
||||||
|
+ if (zso->zvo_disk == NULL)
|
||||||
|
+ goto out_kmem;
|
||||||
|
+
|
||||||
|
+ zso->zvo_disk->minors = ZVOL_MINORS;
|
||||||
|
+ zso->zvo_queue = zso->zvo_disk->queue;
|
||||||
|
+#else
|
||||||
|
zso->zvo_queue = blk_alloc_queue(NUMA_NO_NODE);
|
||||||
|
+ if (zso->zvo_queue == NULL)
|
||||||
|
+ goto out_kmem;
|
||||||
|
+
|
||||||
|
+ zso->zvo_disk = alloc_disk(ZVOL_MINORS);
|
||||||
|
+ if (zso->zvo_disk == NULL) {
|
||||||
|
+ blk_cleanup_queue(zso->zvo_queue);
|
||||||
|
+ goto out_kmem;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ zso->zvo_disk->queue = zso->zvo_queue;
|
||||||
|
+#endif /* HAVE_BLK_ALLOC_DISK */
|
||||||
|
#else
|
||||||
|
zso->zvo_queue = blk_generic_alloc_queue(zvol_request, NUMA_NO_NODE);
|
||||||
|
-#endif
|
||||||
|
if (zso->zvo_queue == NULL)
|
||||||
|
goto out_kmem;
|
||||||
|
|
||||||
|
+ zso->zvo_disk = alloc_disk(ZVOL_MINORS);
|
||||||
|
+ if (zso->zvo_disk == NULL) {
|
||||||
|
+ blk_cleanup_queue(zso->zvo_queue);
|
||||||
|
+ goto out_kmem;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ zso->zvo_disk->queue = zso->zvo_queue;
|
||||||
|
+#endif /* HAVE_SUBMIT_BIO_IN_BLOCK_DEVICE_OPERATIONS */
|
||||||
|
+
|
||||||
|
blk_queue_set_write_cache(zso->zvo_queue, B_TRUE, B_TRUE);
|
||||||
|
|
||||||
|
/* Limit read-ahead to a single page to prevent over-prefetching. */
|
||||||
|
@@ -810,10 +837,6 @@ zvol_alloc(dev_t dev, const char *name)
|
||||||
|
/* Disable write merging in favor of the ZIO pipeline. */
|
||||||
|
blk_queue_flag_set(QUEUE_FLAG_NOMERGES, zso->zvo_queue);
|
||||||
|
|
||||||
|
- zso->zvo_disk = alloc_disk(ZVOL_MINORS);
|
||||||
|
- if (zso->zvo_disk == NULL)
|
||||||
|
- goto out_queue;
|
||||||
|
-
|
||||||
|
zso->zvo_queue->queuedata = zv;
|
||||||
|
zso->zvo_dev = dev;
|
||||||
|
zv->zv_open_count = 0;
|
||||||
|
@@ -844,14 +867,11 @@ zvol_alloc(dev_t dev, const char *name)
|
||||||
|
zso->zvo_disk->first_minor = (dev & MINORMASK);
|
||||||
|
zso->zvo_disk->fops = &zvol_ops;
|
||||||
|
zso->zvo_disk->private_data = zv;
|
||||||
|
- zso->zvo_disk->queue = zso->zvo_queue;
|
||||||
|
snprintf(zso->zvo_disk->disk_name, DISK_NAME_LEN, "%s%d",
|
||||||
|
ZVOL_DEV_NAME, (dev & MINORMASK));
|
||||||
|
|
||||||
|
return (zv);
|
||||||
|
|
||||||
|
-out_queue:
|
||||||
|
- blk_cleanup_queue(zso->zvo_queue);
|
||||||
|
out_kmem:
|
||||||
|
kmem_free(zso, sizeof (struct zvol_state_os));
|
||||||
|
kmem_free(zv, sizeof (zvol_state_t));
|
||||||
|
@@ -882,8 +902,13 @@ zvol_free(zvol_state_t *zv)
|
||||||
|
zfs_rangelock_fini(&zv->zv_rangelock);
|
||||||
|
|
||||||
|
del_gendisk(zv->zv_zso->zvo_disk);
|
||||||
|
+#if defined(HAVE_SUBMIT_BIO_IN_BLOCK_DEVICE_OPERATIONS) && \
|
||||||
|
+ defined(HAVE_BLK_ALLOC_DISK)
|
||||||
|
+ blk_cleanup_disk(zv->zv_zso->zvo_disk);
|
||||||
|
+#else
|
||||||
|
blk_cleanup_queue(zv->zv_zso->zvo_queue);
|
||||||
|
put_disk(zv->zv_zso->zvo_disk);
|
||||||
|
+#endif
|
||||||
|
|
||||||
|
ida_simple_remove(&zvol_ida,
|
||||||
|
MINOR(zv->zv_zso->zvo_dev) >> ZVOL_MINOR_BITS);
|
2
linux
2
linux
|
@ -1 +1 @@
|
||||||
Subproject commit 62fb9874f5da54fdb243003b386128037319b219
|
Subproject commit 7d2a07b769330c34b4deabeed939325c77a7ec2f
|
2
zfs
2
zfs
|
@ -1 +1 @@
|
||||||
Subproject commit c3b60ededa6e6ce36a457a54451ca153c4c630dc
|
Subproject commit 4f92fe0f5c822f6802c6ec675809d7c112a46f2e
|
Loading…
Reference in a new issue