Minor diff reduction with ZoF in include/sys

- move linux/ includes to platform headers
- add void * io_bio to zio for tracking the underlying bio
- add freebsd specific fields to abd_scatter

Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Reviewed-by: Kjeld Schouten <kjeld@schouten-lebbing.nl>
Signed-off-by: Matt Macy <mmacy@FreeBSD.org>
Closes #9615
This commit is contained in:
Matthew Macy 2019-11-27 11:11:03 -08:00 committed by Brian Behlendorf
parent c940bf0c37
commit d6f67df63c
5 changed files with 11 additions and 6 deletions

View File

@ -26,8 +26,12 @@
#ifndef _SPL_UIO_H #ifndef _SPL_UIO_H
#define _SPL_UIO_H #define _SPL_UIO_H
#include <sys/debug.h>
#include <linux/uio.h> #include <linux/uio.h>
#include <linux/blkdev.h> #include <linux/blkdev.h>
#include <linux/blkdev_compat.h>
#include <linux/mm.h>
#include <linux/bio.h>
#include <asm/uaccess.h> #include <asm/uaccess.h>
#include <sys/types.h> #include <sys/types.h>

View File

@ -29,11 +29,7 @@
#include <sys/isa_defs.h> #include <sys/isa_defs.h>
#include <sys/debug.h> #include <sys/debug.h>
#include <sys/refcount.h> #include <sys/refcount.h>
#ifdef _KERNEL
#include <linux/mm.h>
#include <linux/bio.h>
#include <sys/uio.h> #include <sys/uio.h>
#endif
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
@ -56,8 +52,13 @@ typedef struct abd {
union { union {
struct abd_scatter { struct abd_scatter {
uint_t abd_offset; uint_t abd_offset;
#if defined(__FreeBSD__) && defined(_KERNEL)
uint_t abd_chunk_size;
void *abd_chunks[];
#else
uint_t abd_nents; uint_t abd_nents;
struct scatterlist *abd_sgl; struct scatterlist *abd_sgl;
#endif
} abd_scatter; } abd_scatter;
struct abd_linear { struct abd_linear {
void *abd_buf; void *abd_buf;

View File

@ -847,7 +847,6 @@ void dmu_write_by_dnode(dnode_t *dn, uint64_t offset, uint64_t size,
void dmu_prealloc(objset_t *os, uint64_t object, uint64_t offset, uint64_t size, void dmu_prealloc(objset_t *os, uint64_t object, uint64_t offset, uint64_t size,
dmu_tx_t *tx); dmu_tx_t *tx);
#ifdef _KERNEL #ifdef _KERNEL
#include <linux/blkdev_compat.h>
int dmu_read_uio(objset_t *os, uint64_t object, struct uio *uio, uint64_t size); int dmu_read_uio(objset_t *os, uint64_t object, struct uio *uio, uint64_t size);
int dmu_read_uio_dbuf(dmu_buf_t *zdb, struct uio *uio, uint64_t size); int dmu_read_uio_dbuf(dmu_buf_t *zdb, struct uio *uio, uint64_t size);
int dmu_read_uio_dnode(dnode_t *dn, struct uio *uio, uint64_t size); int dmu_read_uio_dnode(dnode_t *dn, struct uio *uio, uint64_t size);

View File

@ -32,7 +32,7 @@
#endif #endif
#endif #endif
#include <linux/fs.h> #include <sys/vfs.h>
#ifdef FS_PROJINHERIT_FL #ifdef FS_PROJINHERIT_FL
#define ZFS_PROJINHERIT_FL FS_PROJINHERIT_FL #define ZFS_PROJINHERIT_FL FS_PROJINHERIT_FL

View File

@ -500,6 +500,7 @@ struct zio {
zio_gang_node_t *io_gang_tree; zio_gang_node_t *io_gang_tree;
void *io_executor; void *io_executor;
void *io_waiter; void *io_waiter;
void *io_bio;
kmutex_t io_lock; kmutex_t io_lock;
kcondvar_t io_cv; kcondvar_t io_cv;
int io_allocator; int io_allocator;