summaryrefslogtreecommitdiffstats
path: root/config
diff options
context:
space:
mode:
authorChunwei Chen <[email protected]>2017-01-27 10:43:39 -0800
committerBrian Behlendorf <[email protected]>2017-01-27 10:43:39 -0800
commit933ec999511f3d29de005bfa8966ae007b161c0f (patch)
tree9a95099ddf19af2ad57b6b0864e85bacf025aa74 /config
parent986dd8aacc9a00ceedf61f63cbe641786f540611 (diff)
Retire .write/.read file operations
The .write/.read file operations callbacks can be retired since support for .read_iter/.write_iter and .aio_read/.aio_write has been added. The vfs_write()/vfs_read() entry functions will select the correct interface for the kernel. This is desirable because all VFS write/read operations now rely on common code. This change also add the generic write checks to make sure that ulimits are enforced correctly on write. Signed-off-by: Brian Behlendorf <[email protected]> Signed-off-by: Chunwei Chen <[email protected]> Closes #5587 Closes #5673
Diffstat (limited to 'config')
-rw-r--r--config/kernel-vfs-rw-iterate.m421
-rw-r--r--config/kernel.m41
2 files changed, 22 insertions, 0 deletions
diff --git a/config/kernel-vfs-rw-iterate.m4 b/config/kernel-vfs-rw-iterate.m4
index f8dc42229..af44beb7b 100644
--- a/config/kernel-vfs-rw-iterate.m4
+++ b/config/kernel-vfs-rw-iterate.m4
@@ -25,3 +25,24 @@ AC_DEFUN([ZFS_AC_KERNEL_VFS_RW_ITERATE],
AC_MSG_RESULT(no)
])
])
+
+dnl #
+dnl # Linux 4.1.x API
+dnl #
+AC_DEFUN([ZFS_AC_KERNEL_GENERIC_WRITE_CHECKS],
+ [AC_MSG_CHECKING([whether generic_write_checks() takes kiocb])
+ ZFS_LINUX_TRY_COMPILE([
+ #include <linux/fs.h>
+
+ ],[
+ struct kiocb *iocb = NULL;
+ struct iov_iter *iov = NULL;
+ generic_write_checks(iocb, iov);
+ ],[
+ AC_MSG_RESULT(yes)
+ AC_DEFINE(HAVE_GENERIC_WRITE_CHECKS_KIOCB, 1,
+ [generic_write_checks() takes kiocb])
+ ],[
+ AC_MSG_RESULT(no)
+ ])
+])
diff --git a/config/kernel.m4 b/config/kernel.m4
index 980d2801f..afb0cc7fa 100644
--- a/config/kernel.m4
+++ b/config/kernel.m4
@@ -104,6 +104,7 @@ AC_DEFUN([ZFS_AC_CONFIG_KERNEL], [
ZFS_AC_KERNEL_LSEEK_EXECUTE
ZFS_AC_KERNEL_VFS_ITERATE
ZFS_AC_KERNEL_VFS_RW_ITERATE
+ ZFS_AC_KERNEL_GENERIC_WRITE_CHECKS
ZFS_AC_KERNEL_KMAP_ATOMIC_ARGS
ZFS_AC_KERNEL_FOLLOW_DOWN_ONE
ZFS_AC_KERNEL_MAKE_REQUEST_FN