]> granicus.if.org Git - zfs/commit
Change os->os_next_write_raw to work per txg
authorTom Caputi <tcaputi@datto.com>
Thu, 1 Feb 2018 20:37:24 +0000 (15:37 -0500)
committerBrian Behlendorf <behlendorf1@llnl.gov>
Fri, 2 Feb 2018 19:44:53 +0000 (11:44 -0800)
commit1b66810bad0a893031c6d49613aa83dc359bf034
treeb79f06387969bd389aa8c8053ebf98562f0e2889
parent047116ac76526d869e3f347afb5d81cc2b156fdf
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 <lundman@lundman.net>
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Reviewed by: Matthew Ahrens <mahrens@delphix.com>
Signed-off-by: Tom Caputi <tcaputi@datto.com>
Closes #6864
include/sys/dmu_objset.h
module/zfs/dbuf.c
module/zfs/dmu_objset.c
module/zfs/dsl_crypt.c
module/zfs/dsl_dataset.c
module/zfs/zil.c