summaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorBrian Behlendorf <[email protected]>2012-03-05 15:14:15 -0800
committerBrian Behlendorf <[email protected]>2012-03-07 16:28:00 -0800
commit0ece356db51e225c3d4a26dff7cf67c99b6b9c55 (patch)
tree8f1e2b35b4c94f8a30dedf65feb5061d903f0043 /include
parent2c6d0b1e07b0265f0661ed7851d3aa8d3e75e7a9 (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')
-rw-r--r--include/sys/sa.h1
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 *);