xfs: add "fail at unmount" error handling configuration
authorCarlos Maiolino <cmaiolino@redhat.com>
Wed, 18 May 2016 01:11:27 +0000 (11:11 +1000)
committerDave Chinner <david@fromorbit.com>
Wed, 18 May 2016 01:11:27 +0000 (11:11 +1000)
commite6b3bb78962e65c4ad125598755cfbf2a8779e86
tree0089723eb2f5ea74989458c53558a38181ddc55f
parente0a431b3a3cc3d0a4c38ccfca8c7320fde40efb6
xfs: add "fail at unmount" error handling configuration

If we take "retry forever" literally on metadata IO errors, we can
hang at unmount, once it retries those writes forever. This is the
default behavior, unfortunately.

Add an error configuration option for this behavior and default it
to "fail" so that an unmount will trigger actuall errors, a shutdown
and allow the unmount to succeed. It will be noisy, though, as it
will log the errors and shutdown that occurs.

To fix this, we need to mark the filesystem as being in the process
of unmounting. Do this with a mount flag that is added at the
appropriate time (i.e. before the blocking AIL sync). We also need
to add this flag if mount fails after the initial phase of log
recovery has been run.

Signed-off-by: Dave Chinner <dchinner@redhat.com>
Signed-off-by: Carlos Maiolino <cmaiolino@redhat.com>
Reviewed-by: Brian Foster <bfoster@redhat.com>
Signed-off-by: Dave Chinner <david@fromorbit.com>
fs/xfs/xfs_buf_item.c
fs/xfs/xfs_mount.c
fs/xfs/xfs_mount.h
fs/xfs/xfs_sysfs.c