From 1175906fbc974ddd5df93b63da6feec7118df156 Mon Sep 17 00:00:00 2001 From: Brian Behlendorf Date: Mon, 6 Jul 2009 16:01:41 -0700 Subject: [PATCH] Update zerocopy patch to be consistent with new flags arg passed to dmu_read(). It would be nice to have one of these for dmu_write() as well but we have do without for now. --- module/zfs/dmu.c | 22 +++++++--------------- module/zfs/include/sys/dmu.h | 8 ++++---- 2 files changed, 11 insertions(+), 19 deletions(-) diff --git a/module/zfs/dmu.c b/module/zfs/dmu.c index 5aff0ee043..15f09ae883 100644 --- a/module/zfs/dmu.c +++ b/module/zfs/dmu.c @@ -601,13 +601,6 @@ dmu_read(objset_t *os, uint64_t object, uint64_t offset, uint64_t size, return (err); } -int -dmu_read(objset_t *os, uint64_t object, uint64_t offset, uint64_t size, - void *buf) -{ - return dmu_read_impl(os, object, offset, size, buf, 0); -} - void dmu_write_impl(objset_t *os, uint64_t object, uint64_t offset, uint64_t size, const void *buf, dmu_tx_t *tx, int flags) @@ -651,6 +644,13 @@ dmu_write_impl(objset_t *os, uint64_t object, uint64_t offset, uint64_t size, dmu_buf_rele_array(dbp, numbufs, FTAG); } +void +dmu_write(objset_t *os, uint64_t object, uint64_t offset, uint64_t size, + const void *buf, dmu_tx_t *tx) +{ + dmu_write_impl(os, object, offset, size, buf, tx, 0); +} + void dmu_prealloc(objset_t *os, uint64_t object, uint64_t offset, uint64_t size, dmu_tx_t *tx) @@ -672,13 +672,6 @@ dmu_prealloc(objset_t *os, uint64_t object, uint64_t offset, uint64_t size, dmu_buf_rele_array(dbp, numbufs, FTAG); } -void -dmu_write(objset_t *os, uint64_t object, uint64_t offset, uint64_t size, - const void *buf, dmu_tx_t *tx) -{ - dmu_write_impl(os, object, offset, size, buf, tx, 0); -} - #ifdef _KERNEL int dmu_read_uio(objset_t *os, uint64_t object, uio_t *uio, uint64_t size) @@ -1299,7 +1292,6 @@ dmu_fini(void) #if defined(_KERNEL) && defined(HAVE_SPL) EXPORT_SYMBOL(dmu_bonus_hold); EXPORT_SYMBOL(dmu_free_range); -EXPORT_SYMBOL(dmu_read_impl); EXPORT_SYMBOL(dmu_read); EXPORT_SYMBOL(dmu_write_impl); EXPORT_SYMBOL(dmu_write); diff --git a/module/zfs/include/sys/dmu.h b/module/zfs/include/sys/dmu.h index d85d602546..d4dc194611 100644 --- a/module/zfs/include/sys/dmu.h +++ b/module/zfs/include/sys/dmu.h @@ -156,10 +156,8 @@ void zfs_znode_byteswap(void *buf, size_t size); * The maximum number of bytes that can be accessed as part of one * operation, including metadata. */ -#define DMU_MAX_ACCESS (10<<20) /* 10MB */ -#define DMU_MAX_DELETEBLKCNT (20480) /* ~5MB of indirect blocks */ -#define DMU_WRITE_ZEROCOPY 0x0001 -#define DMU_READ_ZEROCOPY 0x0002 +#define DMU_MAX_ACCESS (10<<20) /* 10MB */ +#define DMU_MAX_DELETEBLKCNT (20480) /* ~5MB of indirect blocks */ #define DMU_USERUSED_OBJECT (-1ULL) #define DMU_GROUPUSED_OBJECT (-2ULL) @@ -481,6 +479,8 @@ int dmu_free_object(objset_t *os, uint64_t object); */ #define DMU_READ_PREFETCH 0 /* prefetch */ #define DMU_READ_NO_PREFETCH 1 /* don't prefetch */ +#define DMU_READ_ZEROCOPY 2 /* zerocopy on read (test) */ +#define DMU_WRITE_ZEROCOPY 4 /* zerocopy on write (test) */ int dmu_read(objset_t *os, uint64_t object, uint64_t offset, uint64_t size, void *buf, uint32_t flags); void dmu_write(objset_t *os, uint64_t object, uint64_t offset, uint64_t size,