diff options
author | Richard Yao <[email protected]> | 2017-06-13 12:18:08 -0400 |
---|---|---|
committer | Brian Behlendorf <[email protected]> | 2017-06-13 09:18:08 -0700 |
commit | 5228cf011626081ee5dd4b6ce6fd31857d494e93 (patch) | |
tree | cf5b578fa63b763ec7482146325a92bc90199dd3 /include | |
parent | 1fbfcf115979c707e636167fac6c10fec4ff5657 (diff) |
Make zvol operations use _by_dnode routines
This continues what was started in
0eef1bde31d67091d3deed23fe2394f5a8bf2276 by fully converting zvols
to avoid unnecessary dnode_hold() calls. This saves a small amount
of CPU time and slightly improves latencies of operations on zvols.
Reviewed-by: Brian Behlendorf <[email protected]>
Signed-off-by: Richard Yao <[email protected]>
Closes #6058
Diffstat (limited to 'include')
-rw-r--r-- | include/sys/dmu.h | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/include/sys/dmu.h b/include/sys/dmu.h index ea1b116be..d24615262 100644 --- a/include/sys/dmu.h +++ b/include/sys/dmu.h @@ -751,10 +751,13 @@ void dmu_prealloc(objset_t *os, uint64_t object, uint64_t offset, uint64_t size, #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_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_write_uio(objset_t *os, uint64_t object, struct uio *uio, uint64_t size, dmu_tx_t *tx); int dmu_write_uio_dbuf(dmu_buf_t *zdb, struct uio *uio, uint64_t size, dmu_tx_t *tx); +int dmu_write_uio_dnode(dnode_t *dn, struct uio *uio, uint64_t size, + dmu_tx_t *tx); #endif struct arc_buf *dmu_request_arcbuf(dmu_buf_t *handle, int size); void dmu_return_arcbuf(struct arc_buf *buf); |