aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorPaul Zuchowski <[email protected]>2019-03-06 12:50:55 -0500
committerBrian Behlendorf <[email protected]>2019-03-06 09:50:55 -0800
commita73e8fdb93d24b885f0c38202a34da51013d674a (patch)
treece23108be9aee5f492375ce034e836769654e15b /include
parent96ebc5a1a4cc57806882e4e9b38c49ba8a5bdfda (diff)
Stack overflow in recursive bpobj_iterate_impl
The function bpobj_iterate_impl overflows the stack when bpobjs are deeply nested. Rewrite the function to eliminate the recursion. Reviewed-by: Serapheim Dimitropoulos <[email protected]> Reviewed-by: Matt Ahrens <[email protected]> Reviewed-by: Brian Behlendorf <[email protected]> Signed-off-by: Paul Zuchowski <[email protected]> Closes #7674 Closes #7675 Closes #7908
Diffstat (limited to 'include')
-rw-r--r--include/sys/dmu.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/include/sys/dmu.h b/include/sys/dmu.h
index 63c51ecfb..e4c2ebc2f 100644
--- a/include/sys/dmu.h
+++ b/include/sys/dmu.h
@@ -740,6 +740,7 @@ struct blkptr *dmu_buf_get_blkptr(dmu_buf_t *db);
* (ie. you've called dmu_tx_hold_object(tx, db->db_object)).
*/
void dmu_buf_will_dirty(dmu_buf_t *db, dmu_tx_t *tx);
+boolean_t dmu_buf_is_dirty(dmu_buf_t *db, dmu_tx_t *tx);
void dmu_buf_set_crypt_params(dmu_buf_t *db_fake, boolean_t byteorder,
const uint8_t *salt, const uint8_t *iv, const uint8_t *mac, dmu_tx_t *tx);