diff options
author | Tom Caputi <[email protected]> | 2018-02-01 15:37:24 -0500 |
---|---|---|
committer | Brian Behlendorf <[email protected]> | 2018-02-02 11:44:53 -0800 |
commit | 1b66810bad0a893031c6d49613aa83dc359bf034 (patch) | |
tree | b79f06387969bd389aa8c8053ebf98562f0e2889 /include/sys | |
parent | 047116ac76526d869e3f347afb5d81cc2b156fdf (diff) |
Change os->os_next_write_raw to work per txg
Currently, os_next_write_raw is a single boolean used for determining
whether or not the next call to dmu_objset_sync() should write out
the objset_phys_t as a raw buffer. Since the boolean is not associated
with a txg, the work simply happens during the next txg, which is not
necessarily the correct one. In the current implementation this issue
was misdiagnosed, resulting in a small hack in dmu_objset_sync() which
seemed to resolve the problem.
This patch changes os_next_write_raw to be an array of booleans, one
for each txg in TXG_OFF and removes the hack.
Reviewed-by: Jorgen Lundman <[email protected]>
Reviewed-by: Brian Behlendorf <[email protected]>
Reviewed by: Matthew Ahrens <[email protected]>
Signed-off-by: Tom Caputi <[email protected]>
Closes #6864
Diffstat (limited to 'include/sys')
-rw-r--r-- | include/sys/dmu_objset.h | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/include/sys/dmu_objset.h b/include/sys/dmu_objset.h index f3013ad13..7ee992f31 100644 --- a/include/sys/dmu_objset.h +++ b/include/sys/dmu_objset.h @@ -127,7 +127,7 @@ struct objset { boolean_t os_rescan_dnodes; /* os_phys_buf should be written raw next txg */ - boolean_t os_next_write_raw; + boolean_t os_next_write_raw[TXG_SIZE]; /* Protected by os_obj_lock */ kmutex_t os_obj_lock; |