diff options
author | Tom Caputi <[email protected]> | 2018-06-06 13:16:41 -0400 |
---|---|---|
committer | Brian Behlendorf <[email protected]> | 2018-06-06 10:16:41 -0700 |
commit | e7504d7a188b666a61a8c2d8c1ffaa9713f6cdfa (patch) | |
tree | ac99e6fad89bef6a6768a233c1fb99b827c01552 /include | |
parent | 6969afcefdfb49fb9c0fcf56240e6eb133a2c4a8 (diff) |
Raw receive functions must not decrypt data
This patch fixes a small bug found where receive_spill() sometimes
attempted to decrypt spill blocks when doing a raw receive. In
addition, this patch fixes another small issue in arc_buf_fill()'s
error handling where a decryption failure (which could be caused by
the first bug) would attempt to set the arc header's IO_ERROR flag
without holding the header's lock.
Reviewed-by: Matthew Thode <[email protected]>
Reviewed-by: Brian Behlendorf <[email protected]>
Reviewed by: Matthew Ahrens <[email protected]>
Signed-off-by: Tom Caputi <[email protected]>
Closes #7564
Closes #7584
Closes #7592
Diffstat (limited to 'include')
-rw-r--r-- | include/sys/dmu.h | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/include/sys/dmu.h b/include/sys/dmu.h index 119584365..e5950be93 100644 --- a/include/sys/dmu.h +++ b/include/sys/dmu.h @@ -514,7 +514,8 @@ int dmu_rm_spill(objset_t *, uint64_t, dmu_tx_t *); * Special spill buffer support used by "SA" framework */ -int dmu_spill_hold_by_bonus(dmu_buf_t *bonus, void *tag, dmu_buf_t **dbp); +int dmu_spill_hold_by_bonus(dmu_buf_t *bonus, uint32_t flags, void *tag, + dmu_buf_t **dbp); int dmu_spill_hold_by_dnode(dnode_t *dn, uint32_t flags, void *tag, dmu_buf_t **dbp); int dmu_spill_hold_existing(dmu_buf_t *bonus, void *tag, dmu_buf_t **dbp); |