On Mon, Aug 18, 2014 at 03:02:03PM -0400, Brian Foster wrote:
> Workqueues must be explicitly set as freezable to ensure they are frozen
> in the assocated part of the hibernation/suspend sequence. Freezing of
> workqueues and kernel threads is important to ensure that modifications
> are not made on-disk after the hibernation image has been created.
> Otherwise, the in-memory state can become inconsistent with what is on
> disk and eventually lead to filesystem corruption. We have reports of
> free space btree corruptions that occur immediately after restore from
> hibernate that suggest the xfs-eofblocks workqueue could be causing
> such problems if it races with hibernation.
> Mark all of the internal XFS workqueues as freezable to ensure nothing
> changes on-disk once the freezer infrastructure freezes kernel threads
> and creates the hibernation image.
> Signed-off-by: Brian Foster <bfoster@xxxxxxxxxx>
> Reported-by: Carlos E. R. <carlos.e.r@xxxxxxxxxxxx>
Reviewed-by: Dave Chinner <dchinner@xxxxxxxxxx>