From a6255b7fce400d485a0e87cbe369aa0ed7dc5dc4 Mon Sep 17 00:00:00 2001 From: David Quigley Date: Fri, 22 Jul 2016 11:52:49 -0400 Subject: DLPX-44812 integrate EP-220 large memory scalability --- module/zfs/dbuf.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'module/zfs/dbuf.c') diff --git a/module/zfs/dbuf.c b/module/zfs/dbuf.c index 1d8c0518a..6e7a5a0fb 100644 --- a/module/zfs/dbuf.c +++ b/module/zfs/dbuf.c @@ -46,6 +46,7 @@ #include #include #include +#include struct dbuf_hold_impl_data { /* Function arguments */ @@ -3709,6 +3710,9 @@ dbuf_write_override_done(zio_t *zio) mutex_exit(&db->db_mtx); dbuf_write_done(zio, NULL, db); + + if (zio->io_abd != NULL) + abd_put(zio->io_abd); } /* Issue I/O to commit a dirty buffer to disk. */ @@ -3801,7 +3805,8 @@ dbuf_write(dbuf_dirty_record_t *dr, arc_buf_t *data, dmu_tx_t *tx) * The BP for this block has been provided by open context * (by dmu_sync() or dmu_buf_write_embedded()). */ - void *contents = (data != NULL) ? data->b_data : NULL; + abd_t *contents = (data != NULL) ? + abd_get_from_buf(data->b_data, arc_buf_size(data)) : NULL; dr->dr_zio = zio_write(zio, os->os_spa, txg, &dr->dr_bp_copy, contents, db->db.db_size, db->db.db_size, -- cgit v1.2.3