mirror of
				https://git.proxmox.com/git/mirror_zfs.git
				synced 2025-10-26 18:05:04 +03:00 
			
		
		
		
	Linux 4.20 compat: wrapper function for iov_iter type access
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
This commit is contained in:
		
							parent
							
								
									0bf2c5365e
								
							
						
					
					
						commit
						8be6308e85
					
				| @ -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 | #define	zfs_uio_iter_iov(iter)	(iter)->iov | ||||||
| #endif | #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 */ | #endif /* SPL_UIO_H */ | ||||||
|  | |||||||
| @ -300,13 +300,10 @@ zpl_uio_init(zfs_uio_t *uio, struct kiocb *kiocb, struct iov_iter *to, | |||||||
| { | { | ||||||
| #if defined(HAVE_VFS_IOV_ITER) | #if defined(HAVE_VFS_IOV_ITER) | ||||||
| 	zfs_uio_iov_iter_init(uio, to, pos, count, skip); | 	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 | #else | ||||||
| 	zfs_uio_iovec_init(uio, zfs_uio_iter_iov(to), to->nr_segs, pos, | 	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); | 	    count, skip); | ||||||
| #endif | #endif | ||||||
| } | } | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 Coleman Kane
						Coleman Kane