config: remove HAVE_VFS_DIRECT_IO_ITER
Sponsored-by: https://despairlabs.com/sponsor/ Signed-off-by: Rob Norris <robn@despairlabs.com>
This commit is contained in:
parent
6a330190f9
commit
824a1ff553
|
@ -1,57 +0,0 @@
|
|||
dnl #
|
||||
dnl # Check for direct IO interfaces.
|
||||
dnl #
|
||||
AC_DEFUN([ZFS_AC_KERNEL_SRC_VFS_DIRECT_IO], [
|
||||
ZFS_LINUX_TEST_SRC([direct_io_iter], [
|
||||
#include <linux/fs.h>
|
||||
|
||||
static ssize_t test_direct_IO(struct kiocb *kiocb,
|
||||
struct iov_iter *iter) { return 0; }
|
||||
|
||||
static const struct address_space_operations
|
||||
aops __attribute__ ((unused)) = {
|
||||
.direct_IO = test_direct_IO,
|
||||
};
|
||||
],[])
|
||||
|
||||
ZFS_LINUX_TEST_SRC([direct_io_iter_offset], [
|
||||
#include <linux/fs.h>
|
||||
|
||||
static ssize_t test_direct_IO(struct kiocb *kiocb,
|
||||
struct iov_iter *iter, loff_t offset) { return 0; }
|
||||
|
||||
static const struct address_space_operations
|
||||
aops __attribute__ ((unused)) = {
|
||||
.direct_IO = test_direct_IO,
|
||||
};
|
||||
],[])
|
||||
])
|
||||
|
||||
AC_DEFUN([ZFS_AC_KERNEL_VFS_DIRECT_IO], [
|
||||
dnl #
|
||||
dnl # Linux 4.6.x API change
|
||||
dnl #
|
||||
AC_MSG_CHECKING([whether aops->direct_IO() uses iov_iter])
|
||||
ZFS_LINUX_TEST_RESULT([direct_io_iter], [
|
||||
AC_MSG_RESULT([yes])
|
||||
AC_DEFINE(HAVE_VFS_DIRECT_IO_ITER, 1,
|
||||
[aops->direct_IO() uses iov_iter without rw])
|
||||
],[
|
||||
AC_MSG_RESULT([no])
|
||||
|
||||
dnl #
|
||||
dnl # Linux 4.1.x API change
|
||||
dnl #
|
||||
AC_MSG_CHECKING(
|
||||
[whether aops->direct_IO() uses offset])
|
||||
ZFS_LINUX_TEST_RESULT([direct_io_iter_offset], [
|
||||
AC_MSG_RESULT([yes])
|
||||
AC_DEFINE(HAVE_VFS_DIRECT_IO_ITER_OFFSET, 1,
|
||||
[aops->direct_IO() uses iov_iter with offset])
|
||||
|
||||
],[
|
||||
AC_MSG_RESULT([no])
|
||||
ZFS_LINUX_TEST_ERROR([direct IO])
|
||||
])
|
||||
])
|
||||
])
|
|
@ -92,7 +92,6 @@ AC_DEFUN([ZFS_AC_KERNEL_TEST_SRC], [
|
|||
ZFS_AC_KERNEL_SRC_VFS_GETATTR
|
||||
ZFS_AC_KERNEL_SRC_VFS_FSYNC_2ARGS
|
||||
ZFS_AC_KERNEL_SRC_VFS_ITERATE
|
||||
ZFS_AC_KERNEL_SRC_VFS_DIRECT_IO
|
||||
ZFS_AC_KERNEL_SRC_VFS_READPAGES
|
||||
ZFS_AC_KERNEL_SRC_VFS_SET_PAGE_DIRTY_NOBUFFERS
|
||||
ZFS_AC_KERNEL_SRC_VFS_IOV_ITER
|
||||
|
@ -218,7 +217,6 @@ AC_DEFUN([ZFS_AC_KERNEL_TEST_RESULT], [
|
|||
ZFS_AC_KERNEL_VFS_GETATTR
|
||||
ZFS_AC_KERNEL_VFS_FSYNC_2ARGS
|
||||
ZFS_AC_KERNEL_VFS_ITERATE
|
||||
ZFS_AC_KERNEL_VFS_DIRECT_IO
|
||||
ZFS_AC_KERNEL_VFS_READPAGES
|
||||
ZFS_AC_KERNEL_VFS_SET_PAGE_DIRTY_NOBUFFERS
|
||||
ZFS_AC_KERNEL_VFS_IOV_ITER
|
||||
|
|
|
@ -341,29 +341,13 @@ zpl_iter_write(struct kiocb *kiocb, struct iov_iter *from)
|
|||
}
|
||||
|
||||
static ssize_t
|
||||
zpl_direct_IO_impl(int rw, struct kiocb *kiocb, struct iov_iter *iter)
|
||||
zpl_direct_IO(struct kiocb *kiocb, struct iov_iter *iter)
|
||||
{
|
||||
if (rw == WRITE)
|
||||
if (iov_iter_rw(iter) == WRITE)
|
||||
return (zpl_iter_write(kiocb, iter));
|
||||
else
|
||||
return (zpl_iter_read(kiocb, iter));
|
||||
}
|
||||
#if defined(HAVE_VFS_DIRECT_IO_ITER)
|
||||
static ssize_t
|
||||
zpl_direct_IO(struct kiocb *kiocb, struct iov_iter *iter)
|
||||
{
|
||||
return (zpl_direct_IO_impl(iov_iter_rw(iter), kiocb, iter));
|
||||
}
|
||||
#elif defined(HAVE_VFS_DIRECT_IO_ITER_OFFSET)
|
||||
static ssize_t
|
||||
zpl_direct_IO(struct kiocb *kiocb, struct iov_iter *iter, loff_t pos)
|
||||
{
|
||||
ASSERT3S(pos, ==, kiocb->ki_pos);
|
||||
return (zpl_direct_IO_impl(iov_iter_rw(iter), kiocb, iter));
|
||||
}
|
||||
#else
|
||||
#error "Unknown direct IO interface"
|
||||
#endif
|
||||
|
||||
static loff_t
|
||||
zpl_llseek(struct file *filp, loff_t offset, int whence)
|
||||
|
|
Loading…
Reference in New Issue