]> git.proxmox.com Git - mirror_zfs.git/commitdiff
Linux 4.20 compat: wrapper function for iov_iter type access
authorColeman Kane <ckane@colemankane.org>
Sun, 30 Jul 2023 19:23:47 +0000 (15:23 -0400)
committerBrian Behlendorf <behlendorf1@llnl.gov>
Tue, 19 Sep 2023 15:50:01 +0000 (08:50 -0700)
An iov_iter_type() function to access the "type" member of the struct
iov_iter was added at one point. Move the conditional logic to decide
which method to use for accessing it into a macro and simplify the
zpl_uio_init code.

Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Reviewed-by: Brian Atkinson <batkinson@lanl.gov>
Signed-off-by: Coleman Kane <ckane@colemankane.org>
Closes #15100

include/os/linux/spl/sys/uio.h
module/os/linux/zfs/zpl_file.c

index 082e930e46b32ac7ec04e80f9f47a19cd121e508..cce097e16fbc8207cfd514be1e124706555d0424 100644 (file)
@@ -179,4 +179,10 @@ zfs_uio_iov_iter_init(zfs_uio_t *uio, struct iov_iter *iter, offset_t offset,
 #define        zfs_uio_iter_iov(iter)  (iter)->iov
 #endif
 
+#if defined(HAVE_IOV_ITER_TYPE)
+#define        zfs_uio_iov_iter_type(iter)     iov_iter_type((iter))
+#else
+#define        zfs_uio_iov_iter_type(iter)     (iter)->type
+#endif
+
 #endif /* SPL_UIO_H */
index aedafd6002b94440139545f464aeb98c5b4164cc..f6af2ebd1163e6837fe737c1ba62398cad4525f9 100644 (file)
@@ -300,13 +300,10 @@ zpl_uio_init(zfs_uio_t *uio, struct kiocb *kiocb, struct iov_iter *to,
 {
 #if defined(HAVE_VFS_IOV_ITER)
        zfs_uio_iov_iter_init(uio, to, pos, count, skip);
-#elif defined(HAVE_IOV_ITER_TYPE)
-       zfs_uio_iovec_init(uio, zfs_uio_iter_iov(to), to->nr_segs, pos,
-           iov_iter_type(to) & ITER_KVEC ? UIO_SYSSPACE : UIO_USERSPACE,
-           count, skip);
 #else
        zfs_uio_iovec_init(uio, zfs_uio_iter_iov(to), to->nr_segs, pos,
-           to->type & ITER_KVEC ? UIO_SYSSPACE : UIO_USERSPACE,
+           zfs_uio_iov_iter_type(to) & ITER_KVEC ?
+           UIO_SYSSPACE : UIO_USERSPACE,
            count, skip);
 #endif
 }