[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