summaryrefslogtreecommitdiffstats
path: root/module/zfs/dsl_scan.c
diff options
context:
space:
mode:
authorTim Chase <[email protected]>2014-11-10 23:26:33 -0600
committerBrian Behlendorf <[email protected]>2014-11-17 11:25:48 -0800
commit4254acb05743dc2175ae76f6e15b0785d4b688fd (patch)
tree4a3e1dd0e51bd2846c05d79146cf581ebdf4e699 /module/zfs/dsl_scan.c
parentbc9f4131a15a177f1d355ad1c5c844e0ab9a505a (diff)
Undirty freed spill blocks.
If a spill block's dbuf hasn't yet been written when a spill block is freed, the unwritten version will still be written. This patch handles the case in which a spill block's dbuf is freed and undirties it to prevent it from being written. The most common case in which this could happen is when xattr=sa is being used and a long xattr is immediately replaced by a short xattr as in: setfattr -n user.test -v very_very_very..._long_value <file> setfattr -n user.test -v short_value <file> The first value must be sufficiently long that a spill block is generated and the second value must be short enough to not require a spill block. In practice, this would typically happen due to internal xattr operations as a result of setting acltype=posixacl. Signed-off-by: Tim Chase <[email protected]> Signed-off-by: Brian Behlendorf <[email protected]> Closes #2663 Closes #2700 Closes #2701 Closes #2717 Closes #2863 Closes #2884
Diffstat (limited to 'module/zfs/dsl_scan.c')
0 files changed, 0 insertions, 0 deletions