xfs
[Top] [All Lists]

Re: [PATCH v3] xfs: Fix oops on IO error during xlog_recover_process_iun

To: Jan Kara <jack@xxxxxxx>
Subject: Re: [PATCH v3] xfs: Fix oops on IO error during xlog_recover_process_iunlinks()
From: Ben Myers <bpm@xxxxxxx>
Date: Mon, 26 Mar 2012 16:56:01 -0500
Cc: Alex Elder <elder@xxxxxxxxxx>, xfs@xxxxxxxxxxx, Christoph Hellwig <hch@xxxxxxxxxxxxx>, stable@xxxxxxxxxx
In-reply-to: <1331804042-11580-1-git-send-email-jack@xxxxxxx>
References: <1331804042-11580-1-git-send-email-jack@xxxxxxx>
User-agent: Mutt/1.5.18 (2008-05-17)
On Thu, Mar 15, 2012 at 10:34:02AM +0100, Jan Kara wrote:
> When an IO error happens during inode deletion run from
> xlog_recover_process_iunlinks() filesystem gets shutdown. Thus any subsequent
> attempt to read buffers fails. Code in xlog_recover_process_iunlinks() does 
> not
> count with the fact that read of a buffer which was read a while ago can
> really fail which results in the oops on
>   agi = XFS_BUF_TO_AGI(agibp);
> 
> Fix the problem by cleaning up the buffer handling in
> xlog_recover_process_iunlinks() as suggested by Dave Chinner. We release 
> buffer
> lock but keep buffer reference to AG buffer. That is enough for buffer to stay
> pinned in memory and we don't have to call xfs_read_agi() all the time.
> 
> CC: stable@xxxxxxxxxx
> Signed-off-by: Jan Kara <jack@xxxxxxx>

Looks good to me...
Reviewed-by: Ben Myers <bpm@xxxxxxx>

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