diff options
author | Brian Behlendorf <[email protected]> | 2012-03-05 15:14:15 -0800 |
---|---|---|
committer | Brian Behlendorf <[email protected]> | 2012-03-07 16:28:00 -0800 |
commit | 0ece356db51e225c3d4a26dff7cf67c99b6b9c55 (patch) | |
tree | 8f1e2b35b4c94f8a30dedf65feb5061d903f0043 /include/sys | |
parent | 2c6d0b1e07b0265f0661ed7851d3aa8d3e75e7a9 (diff) |
Add sa_spill_rele() interface
Add a SA interface which allows us to release the spill block
from a SA handle without destroying the handle. This is useful
because we can then ensure that a copy of the dirty spill block
is not made at sync time due to the extra hold. Susequent calls
to sa_update() or sa_lookup() with transparently refetch the
spill block dbuf from the ARC hash.
Signed-off-by: Brian Behlendorf <[email protected]>
Diffstat (limited to 'include/sys')
-rw-r--r-- | include/sys/sa.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/include/sys/sa.h b/include/sys/sa.h index 718cbfbd5..b8db0c130 100644 --- a/include/sys/sa.h +++ b/include/sys/sa.h @@ -139,6 +139,7 @@ void sa_set_userp(sa_handle_t *, void *); dmu_buf_t *sa_get_db(sa_handle_t *); uint64_t sa_handle_object(sa_handle_t *); boolean_t sa_attr_would_spill(sa_handle_t *, sa_attr_type_t, int size); +void sa_spill_rele(sa_handle_t *); void sa_register_update_callback(objset_t *, sa_update_cb_t *); int sa_setup(objset_t *, uint64_t, sa_attr_reg_t *, int, sa_attr_type_t **); void sa_tear_down(objset_t *); |