diff options
author | Chunwei Chen <[email protected]> | 2017-01-27 10:43:39 -0800 |
---|---|---|
committer | Brian Behlendorf <[email protected]> | 2017-01-27 10:43:39 -0800 |
commit | 933ec999511f3d29de005bfa8966ae007b161c0f (patch) | |
tree | 9a95099ddf19af2ad57b6b0864e85bacf025aa74 /config | |
parent | 986dd8aacc9a00ceedf61f63cbe641786f540611 (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.m4 | 21 | ||||
-rw-r--r-- | config/kernel.m4 | 1 |
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 |