|
@@ -4155,6 +4155,14 @@ static void btrfs_destroy_all_ordered_extents(struct btrfs_fs_info *fs_info)
|
|
|
spin_lock(&fs_info->ordered_root_lock);
|
|
spin_lock(&fs_info->ordered_root_lock);
|
|
|
}
|
|
}
|
|
|
spin_unlock(&fs_info->ordered_root_lock);
|
|
spin_unlock(&fs_info->ordered_root_lock);
|
|
|
|
|
+
|
|
|
|
|
+ /*
|
|
|
|
|
+ * We need this here because if we've been flipped read-only we won't
|
|
|
|
|
+ * get sync() from the umount, so we need to make sure any ordered
|
|
|
|
|
+ * extents that haven't had their dirty pages IO start writeout yet
|
|
|
|
|
+ * actually get run and error out properly.
|
|
|
|
|
+ */
|
|
|
|
|
+ btrfs_wait_ordered_roots(fs_info, U64_MAX, 0, (u64)-1);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
static int btrfs_destroy_delayed_refs(struct btrfs_transaction *trans,
|
|
static int btrfs_destroy_delayed_refs(struct btrfs_transaction *trans,
|