Tom Caputi
47ab01a18f
Always wait for txg sync when umounting dataset
...
Currently, when unmounting a filesystem, ZFS will only wait for
a txg sync if the dataset is dirty and not readonly. However, this
can be problematic in cases where a dataset is remounted readonly
immediately before being unmounted, which often happens when the
system is being shut down. Since encrypted datasets require that
all I/O is completed before the dataset is disowned, this issue
causes problems when write I/Os leak into the txgs after the
dataset is disowned, which can happen when sync=disabled.
While looking into fixes for this issue, it was discovered that
dsl_dataset_is_dirty() does not return B_TRUE when the dataset has
been removed from the txg dirty datasets list, but has not actually
been processed yet. Furthermore, the implementation is comletely
different from dmu_objset_is_dirty(), adding to the confusion.
Rather than relying on this function, this patch forces the umount
code path (and the remount readonly code path) to always perform a
txg sync on read-write datasets and removes the function altogether.
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov >
Signed-off-by: Tom Caputi <tcaputi@datto.com >
Closes #7753
Closes #7795
2018-08-27 10:16:28 -07:00
..
2018-05-29 16:00:33 -07:00
2018-06-07 15:55:11 -07:00
2018-08-20 11:03:56 -07:00
2017-11-04 13:25:13 -07:00
2015-01-16 14:41:26 -08:00
2018-04-14 12:16:17 -07:00
2017-08-14 10:36:48 -07:00
2017-06-26 14:36:49 -07:00
2018-06-06 09:35:59 -07:00
2018-08-20 09:52:37 -07:00
2018-05-29 16:00:33 -07:00
2018-08-20 11:03:56 -07:00
2018-05-29 16:00:33 -07:00
2018-05-29 16:00:33 -07:00
2018-05-01 11:24:20 -07:00
2018-07-30 09:27:49 -07:00
2018-08-15 09:49:19 -07:00
2018-08-20 11:03:56 -07:00
2018-08-15 09:53:44 -07:00
2018-08-27 10:16:01 -07:00
2018-05-29 16:00:33 -07:00
2018-08-20 11:03:56 -07:00
2018-08-02 10:21:48 -07:00
2018-08-02 10:21:48 -07:00
2017-11-04 13:25:13 -07:00
2018-08-15 09:49:19 -07:00
2018-08-27 10:16:28 -07:00
2018-04-14 12:16:17 -07:00
2018-05-29 16:00:33 -07:00
2018-08-22 11:03:31 -07:00
2018-08-03 14:50:51 -07:00
2018-06-26 10:07:42 -07:00
2018-05-29 16:00:33 -07:00
2018-07-24 09:33:56 -07:00
2018-06-26 10:07:42 -07:00
2018-06-26 10:07:42 -07:00
2016-11-29 14:34:27 -08:00
2018-07-30 11:30:03 -07:00
2018-05-29 16:00:33 -07:00
2017-10-11 16:54:48 -04:00
2017-05-19 13:45:46 -07:00
2015-01-16 14:41:26 -08:00
2018-08-20 09:52:37 -07:00
2018-07-31 10:52:33 -07:00
2018-05-29 16:00:33 -07:00
2018-05-29 16:00:33 -07:00
2018-05-29 16:00:33 -07:00
2018-03-07 15:40:42 -08:00
2018-05-01 20:44:24 -07:00
2018-05-01 20:44:24 -07:00
2018-03-15 10:53:58 -07:00
2018-03-29 17:40:34 -07:00
2018-06-26 10:07:42 -07:00
2017-02-28 16:10:18 -08:00
2017-01-03 11:31:18 -06:00
2018-07-11 13:10:40 -07:00
2018-03-15 10:53:58 -07:00
2016-11-29 14:34:27 -08:00
2010-08-31 13:41:58 -07:00
2018-07-05 12:02:34 -07:00
2018-06-21 09:35:26 -07:00
2018-05-29 16:00:33 -07:00
2018-05-29 16:00:33 -07:00
2018-07-31 10:52:33 -07:00
2018-06-06 09:33:54 -07:00
2018-08-20 09:52:37 -07:00
2018-07-25 14:11:35 -07:00
2018-04-14 12:16:17 -07:00
2018-06-06 09:35:59 -07:00
2018-06-06 09:35:59 -07:00
2018-04-14 12:16:17 -07:00
2018-08-27 10:16:01 -07:00
2018-06-26 10:07:42 -07:00
2016-08-31 14:35:34 -07:00
2018-05-29 16:00:33 -07:00
2018-07-23 15:40:15 -07:00
2018-04-14 12:16:17 -07:00
2018-05-29 16:00:33 -07:00
2018-07-05 12:02:34 -07:00
2018-07-05 12:02:34 -07:00
2018-06-26 10:07:42 -07:00
2018-05-29 16:00:33 -07:00
2018-04-14 12:16:17 -07:00
2018-07-31 10:52:33 -07:00
2016-11-29 14:34:33 -08:00
2017-01-22 13:25:40 -08:00
2016-11-29 14:34:33 -08:00
2016-11-29 14:34:33 -08:00
2016-12-15 17:31:33 -08:00
2016-12-12 10:46:26 -08:00
2017-01-22 13:25:40 -08:00
2016-11-29 14:34:33 -08:00
2016-11-29 14:34:33 -08:00
2017-01-22 13:25:40 -08:00
2018-05-29 16:00:33 -07:00
2018-04-14 12:16:17 -07:00
2018-07-31 10:52:33 -07:00
2018-05-08 21:35:27 -07:00
2018-08-21 16:08:14 -07:00
2018-05-31 10:53:11 -07:00
2018-05-31 10:53:49 -07:00
2018-05-31 10:53:11 -07:00
2018-02-20 11:19:42 -08:00
2018-02-08 15:29:24 -08:00
2018-07-12 10:49:27 -07:00
2018-06-26 10:07:42 -07:00
2018-07-10 21:29:23 -07:00
2017-11-04 13:25:13 -07:00
2018-05-29 16:00:33 -07:00
2018-05-29 16:00:33 -07:00
2018-08-01 15:00:02 -07:00
2018-03-21 15:37:32 -07:00
2018-05-29 16:00:33 -07:00
2018-05-29 16:00:33 -07:00
2018-05-29 16:00:33 -07:00
2018-08-15 09:48:49 -07:00
2018-05-29 16:00:33 -07:00
2018-05-29 16:00:33 -07:00
2018-03-04 17:34:51 -08:00
2018-05-29 16:00:33 -07:00
2018-05-29 16:00:33 -07:00
2018-02-13 14:54:54 -08:00
2018-08-27 10:16:28 -07:00
2018-08-20 09:52:37 -07:00
2018-06-19 21:51:18 -07:00
2018-07-31 10:52:33 -07:00
2017-11-04 13:25:13 -07:00
2018-05-29 16:00:33 -07:00
2018-05-29 16:00:33 -07:00
2018-05-29 16:00:33 -07:00
2018-08-02 15:51:45 -07:00
2018-02-09 10:08:05 -08:00
2018-05-02 15:01:24 -07:00
2016-12-12 10:46:26 -08:00
2018-08-27 10:04:21 -07:00
2018-06-19 21:51:18 -07:00
2018-07-11 15:49:10 -07:00
2018-08-02 14:03:56 -07:00
2018-05-29 16:00:33 -07:00
2018-06-26 10:07:42 -07:00
2018-08-27 10:16:28 -07:00