6beaed3f99
since Debian unstable has not been updated yet.
71 lines
2.6 KiB
Diff
71 lines
2.6 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: Richard Yao <ryao@gentoo.org>
|
|
Date: Tue, 9 Jan 2018 19:18:19 -0500
|
|
Subject: [PATCH] Fix incompatibility with Reiser4 patched kernels
|
|
MIME-Version: 1.0
|
|
Content-Type: text/plain; charset=UTF-8
|
|
Content-Transfer-Encoding: 8bit
|
|
|
|
In ZFSOnLinux, our sources and build system are self contained such that
|
|
we do not need to make changes to the Linux kernel sources. Reiser4 on
|
|
the other hand exists solely as a kernel tree patch and opts to make
|
|
changes to the kernel rather than adapt to it. After Linux 4.1 made a
|
|
VFS change that replaced new_sync_read with do_sync_read, Reiser4's
|
|
maintainer decided to modify the kernel VFS to export the old function.
|
|
This caused our autotools check to misidentify the kernel API as
|
|
predating Linux 4.1 on kernels that have been patched with Reiser4
|
|
support, which breaks our build.
|
|
|
|
Reiser4 really should be patched to stop doing this, but lets modify our
|
|
check to be more strict to help the affected users of both filesystems.
|
|
|
|
Also, we were not checking the types of arguments and return value of
|
|
new_sync_read() and new_sync_write() . Lets fix that too.
|
|
|
|
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
|
|
Reviewed-by: Giuseppe Di Natale <dinatale2@llnl.gov>
|
|
Reviewed-by: George Melikov <mail@gmelikov.ru>
|
|
Signed-off-by: Richard Yao <ryao@gentoo.org>
|
|
Closes #6241
|
|
Closes #7021
|
|
(cherry picked from commit ecc8af18125728bf03841ceb48b057e15d96362c)
|
|
Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
|
|
---
|
|
config/kernel-vfs-rw-iterate.m4 | 14 +++++++++++---
|
|
1 file changed, 11 insertions(+), 3 deletions(-)
|
|
|
|
diff --git a/config/kernel-vfs-rw-iterate.m4 b/config/kernel-vfs-rw-iterate.m4
|
|
index 9f8fe6559..ace54f707 100644
|
|
--- a/config/kernel-vfs-rw-iterate.m4
|
|
+++ b/config/kernel-vfs-rw-iterate.m4
|
|
@@ -32,15 +32,23 @@ dnl #
|
|
dnl # Linux 4.1 API
|
|
dnl #
|
|
AC_DEFUN([ZFS_AC_KERNEL_NEW_SYNC_READ],
|
|
- [AC_MSG_CHECKING([whether new_sync_read() is available])
|
|
+ [AC_MSG_CHECKING([whether new_sync_read/write() are available])
|
|
ZFS_LINUX_TRY_COMPILE([
|
|
#include <linux/fs.h>
|
|
],[
|
|
- new_sync_read(NULL, NULL, 0, NULL);
|
|
+ ssize_t ret __attribute__ ((unused));
|
|
+ struct file *filp = NULL;
|
|
+ char __user *rbuf = NULL;
|
|
+ const char __user *wbuf = NULL;
|
|
+ size_t len = 0;
|
|
+ loff_t ppos;
|
|
+
|
|
+ ret = new_sync_read(filp, rbuf, len, &ppos);
|
|
+ ret = new_sync_write(filp, wbuf, len, &ppos);
|
|
],[
|
|
AC_MSG_RESULT(yes)
|
|
AC_DEFINE(HAVE_NEW_SYNC_READ, 1,
|
|
- [new_sync_read() is available])
|
|
+ [new_sync_read()/new_sync_write() are available])
|
|
],[
|
|
AC_MSG_RESULT(no)
|
|
])
|
|
--
|
|
2.14.2
|
|
|