Re: [PATCH 6/7] xfs: add configuration handlers for specific errors

Dave Chinner
2016-05-05T23:57:44Z

On Thu, May 05, 2016 at 10:11:02AM -0400, Brian Foster wrote:
> On Wed, May 04, 2016 at 05:43:19PM +0200, Carlos Maiolino wrote:
> > now most of the infrastructure is in place, we can start adding
> > support for configuring specific errors such as ENODEV, ENOSPC, EIO,
> > etc. Add these error configurations and configure them all to have
> > appropriate behaviours. That is, all will be configured to retry forever by
> > default, except for ENODEV, which is an unrecoverable error, so it will be
> > configured to not retry on error
> >
> > Changelog:
> >
> > V3:
> > - Do not implement .fail_speed and .fail_at_unmount
> > - .fail_at_unmount will be implemented in a different patch
> >
> > Signed-off-by: Dave Chinner <dchinner@redhat.com>
> > Signed-off-by: Carlos Maiolino <cmaiolino@redhat.com>
> > ---
> > fs/xfs/xfs_mount.h | 3 +++
> > fs/xfs/xfs_sysfs.c | 20 ++++++++++++++++++++
> > 2 files changed, 23 insertions(+)
> >
> > diff --git a/fs/xfs/xfs_mount.h b/fs/xfs/xfs_mount.h
> > index 0382140..e3b3267 100644
> > --- a/fs/xfs/xfs_mount.h
> > +++ b/fs/xfs/xfs_mount.h
> > @@ -49,6 +49,9 @@ enum {
> > };
> > enum {
> > XFS_ERR_DEFAULT,
> > + XFS_ERR_EIO,
> > + XFS_ERR_ENOSPC,
> > + XFS_ERR_ENODEV,
> > XFS_ERR_ERRNO_MAX,
> > };
> >
> > diff --git a/fs/xfs/xfs_sysfs.c b/fs/xfs/xfs_sysfs.c
> > index c881360..1ed9033 100644
> > --- a/fs/xfs/xfs_sysfs.c
> > +++ b/fs/xfs/xfs_sysfs.c
> > @@ -481,6 +481,17 @@ static const struct xfs_error_init xfs_error_meta_init[XFS_ERR_ERRNO_MAX] = {
> > .max_retries = -1,
> > .retry_timeout = 0,
> > },
> > + { .name = "EIO",
> > + .max_retries = -1,
> > + .retry_timeout = 0,
> > + },
> > + { .name = "ENOSPC",
> > + .max_retries = -1,
> > + .retry_timeout = 0,
> > + },
> > + { .name = "ENODEV",
> > + .max_retries = -1,
>
> Shouldn't this be 0?

If they are supposed to be "retry forever", they shoul dbe set to
the define I asked to be added in the last review. i.e.
XFS_ERR_RETRY_FOREVER. But if a device goes away, then we may as
well fail immediately as it will never come back as the same
device....

Cheers,

Dave.
--
Dave Chinner
david@fromorbit.com