[PATCH 1/2] xfs: fix error handling in xfs_log_mount
Felix Blyakher
felixb at sgi.com
Tue Feb 10 13:56:31 CST 2009
Isn't it a reworked Lachlan's patch:
http://oss.sgi.com/archives/xfs/2009-02/msg00175.html
Otherwise, looks good.
Felix
On Feb 10, 2009, at 1:44 PM, Christoph Hellwig wrote:
> We can't just call xfs_log_unmount_dealloc on any failure because the
> ail thread which is torn down by xfs_log_unmount_dealloc might not
> be initialized yet.
>
>
> Signed-off-by: Christoph Hellwig <hch at lst.de>
>
> Index: xfs/fs/xfs/xfs_log.c
> ===================================================================
> --- xfs.orig/fs/xfs/xfs_log.c 2009-02-10 19:16:18.761945594 +0100
> +++ xfs/fs/xfs/xfs_log.c 2009-02-10 19:18:54.177068965 +0100
> @@ -574,7 +574,7 @@ xfs_log_mount(
> error = xfs_trans_ail_init(mp);
> if (error) {
> cmn_err(CE_WARN, "XFS: AIL initialisation failed: error %d", error);
> - goto error;
> + goto out_free_log;
> }
> mp->m_log->l_ailp = mp->m_ail;
>
> @@ -594,20 +594,22 @@ xfs_log_mount(
> mp->m_flags |= XFS_MOUNT_RDONLY;
> if (error) {
> cmn_err(CE_WARN, "XFS: log mount/recovery failed: error %d",
> error);
> - goto error;
> + goto out_destroy_ail;
> }
> }
>
> /* Normal transactions can now occur */
> mp->m_log->l_flags &= ~XLOG_ACTIVE_RECOVERY;
>
> - /* End mounting message in xfs_log_mount_finish */
> return 0;
> -error:
> - xfs_log_unmount_dealloc(mp);
> +
> +out_destroy_ail:
> + xfs_trans_ail_destroy(mp);
> +out_free_log:
> + xlog_dealloc_log(mp->m_log);
> out:
> return error;
> -} /* xfs_log_mount */
> +}
>
> /*
> * Finish the recovery of the file system. This is separate from
>
> _______________________________________________
> xfs mailing list
> xfs at oss.sgi.com
> http://oss.sgi.com/mailman/listinfo/xfs
More information about the xfs
mailing list