[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