[PATCH 1/2] xfs: aborted buf items can be in the AIL.

Mark Tinguely tinguely at sgi.com
Fri Sep 6 14:39:24 CDT 2013


On 09/03/13 06:47, Dave Chinner wrote:
> From: Dave Chinner<dchinner at redhat.com>
>
> Saw this on generic/270 after a DQALLOC transaction overrun
> shutdown:
>
> XFS: Assertion failed: !(bip->bli_item.li_flags&  XFS_LI_IN_AIL), file: fs/xfs/xfs_buf_item.c, line: 952
> .....
>   xfs_buf_item_relse+0x4f/0xd0
>   xfs_buf_item_unlock+0x1b4/0x1e0
>   xfs_trans_free_items+0x7d/0xb0
>   xfs_trans_cancel+0x13c/0x1b0
>   xfs_symlink+0x37e/0xa60
> ....
>
> When a transaction abort occured.
>
> If we are aborting a transaction and trigger this code path, then
> the item may be dirty. If the item is dirty, then it may be in the
> AIL. Hence if we are aborting, we need to check if the item is in
> the AIL and remove it before freeing it.
>
> Signed-off-by: Dave Chinner<dchinner at redhat.com>
> ---

This is fine for Linux 3.12. Christoph's reference counting reorg sounds 
interesting.

Reviewed-by: Mark Tinguely <tinguely at sgi.com>



More information about the xfs mailing list