xfs
[Top] [All Lists]

Re: [PATCH 05/12] xfs: clean up log ticket overrun debug output

To: Dave Chinner <david@xxxxxxxxxxxxx>
Subject: Re: [PATCH 05/12] xfs: clean up log ticket overrun debug output
From: Alex Elder <aelder@xxxxxxx>
Date: Wed, 19 May 2010 14:16:44 -0500
Cc: xfs@xxxxxxxxxxx
In-reply-to: <1274138668-1662-6-git-send-email-david@xxxxxxxxxxxxx>
References: <1274138668-1662-1-git-send-email-david@xxxxxxxxxxxxx> <1274138668-1662-6-git-send-email-david@xxxxxxxxxxxxx>
Reply-to: aelder@xxxxxxx
On Tue, 2010-05-18 at 09:24 +1000, Dave Chinner wrote:
> From: Dave Chinner <dchinner@xxxxxxxxxx>
> 
> Push the error message output when a ticket overrun is detected
> into the ticket printing functions. Also remove the debug version
> of the code as the production version will still panic just as
> effectively on a debug kernel via the panic mask being set.

Another not-really-actionable bit of commentary
below, but this looks good.

> Signed-off-by: Dave Chinner <dchinner@xxxxxxxxxx>
> Reviewed-by: Christoph Hellwig <hch@xxxxxx>
> ---
>  fs/xfs/xfs_error.c |    2 +-
>  fs/xfs/xfs_log.c   |   19 +++++--------------
>  2 files changed, 6 insertions(+), 15 deletions(-)
> 
> diff --git a/fs/xfs/xfs_error.c b/fs/xfs/xfs_error.c
> index ef96175..047b8a8 100644
> --- a/fs/xfs/xfs_error.c
> +++ b/fs/xfs/xfs_error.c
> @@ -170,7 +170,7 @@ xfs_cmn_err(int panic_tag, int level, xfs_mount_t *mp, 
> char *fmt, ...)
>       va_list ap;
>  
>  #ifdef DEBUG
> -     xfs_panic_mask |= XFS_PTAG_SHUTDOWN_CORRUPT;
> +     xfs_panic_mask |= (XFS_PTAG_SHUTDOWN_CORRUPT | XFS_PTAG_LOGRES);
>  #endif
>  
>       if (xfs_panic_mask && (xfs_panic_mask & panic_tag)
> diff --git a/fs/xfs/xfs_log.c b/fs/xfs/xfs_log.c
> index 83be6a6..1efb303 100644
> --- a/fs/xfs/xfs_log.c
> +++ b/fs/xfs/xfs_log.c
> @@ -1645,6 +1645,10 @@ xlog_print_tic_res(xfs_mount_t *mp, xlog_ticket_t 
> *ticket)
>                           "bad-rtype" : res_type_str[r_type-1]),
>                           ticket->t_res_arr[i].r_len);
>       }
> +
> +     xfs_cmn_err(XFS_PTAG_LOGRES, CE_ALERT, mp,
> +             "xfs_log_write: reservation ran out. Need to up reservation");
> +     xfs_force_shutdown(mp, SHUTDOWN_CORRUPT_INCORE);
>  }
>  
>  /*
> @@ -1897,21 +1901,8 @@ xlog_write(
>       *start_lsn = 0;
>  
>       len = xlog_write_calc_vec_length(ticket, log_vector);
> -     if (ticket->t_curr_res < len) {
> +     if (ticket->t_curr_res < len)
>               xlog_print_tic_res(log->l_mp, ticket);

Somehow "xlog_print_tic_res" doesn't suggest to me
that we're going to panic at this point, and I think
therefore that bit of information is lost with this
change.  I prefer what you've done, but I think I
would have liked some brief comment or something that
tells me this is a fatal condition.

> -#ifdef DEBUG
> -             xlog_panic(
> -     "xfs_log_write: reservation ran out. Need to up reservation");
> -#else
> -             /* Customer configurable panic */
> -             xfs_cmn_err(XFS_PTAG_LOGRES, CE_ALERT, log->l_mp,
> -     "xfs_log_write: reservation ran out. Need to up reservation");
> -
> -             /* If we did not panic, shutdown the filesystem */
> -             xfs_force_shutdown(log->l_mp, SHUTDOWN_CORRUPT_INCORE);
> -#endif
> -     }
> -
>       ticket->t_curr_res -= len;
>  
>       index = 0;



<Prev in Thread] Current Thread [Next in Thread>