diff options
author | Xin Li <[email protected]> | 2011-10-21 16:39:53 -0700 |
---|---|---|
committer | Brian Behlendorf <[email protected]> | 2011-10-24 09:57:52 -0700 |
commit | c47516762758c989a443c0a6a9e38ae8fb46e6f1 (patch) | |
tree | 322102432cc80e701000ed47668d3857e5250b00 /module/zfs/dmu.c | |
parent | 3cee2262a6efd06031a2ff511f66e6a51f743e6a (diff) |
Illumos #1661: Fix flaw in sa_find_sizes() calculation
When calculating space needed for SA_BONUS buffers, hdrsize is
always rounded up to next 8-aligned boundary. However, in two places
the round up was done against sum of 'total' plus hdrsize. On the
other hand, hdrsize increments by 4 each time, which means in certain
conditions, we would end up returning with will_spill == 0 and
(total + hdrsize) larger than full_space, leading to a failed
assertion because it's invalid for dmu_set_bonus.
Reviewed by: Matthew Ahrens <[email protected]>
Reviewed by: Dan McDonald <[email protected]>
Approved by: Gordon Ross <[email protected]>
References to Illumos issue:
https://www.illumos.org/issues/1661
Signed-off-by: Brian Behlendorf <[email protected]>
Closes #426
Diffstat (limited to 'module/zfs/dmu.c')
0 files changed, 0 insertions, 0 deletions