Skip to content

XFS: AIL cleanup and bug fixes

Dave Chinner linux-xfs 1 version In review

Get series with b4
b4 am [email protected]

Versions newest first

  1. v1 Latest8 patches 11 repliesIn review

Patches in v1 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/8XFS: Allocate the struct xfs_ailfs/xfs/linux-2.6/xfs_super.c fs/xfs/xfs_mount.h fs/xfs/xfs_trans_ail.c +1 more+77 -651 reply
2/8XFS: Use a cursor for AIL traversal.fs/xfs/xfs_log.c fs/xfs/xfs_log_recover.c fs/xfs/xfs_trans_ail.c +1 more+180 -932 replies
3/8XFS: move the AIl traversal over to a consistent interfacefs/xfs/xfs_log.c fs/xfs/xfs_log_recover.c fs/xfs/xfs_trans.h +2 more+48 -861 reply
4/8XFS: Allow 64 bit machines to avoid the AIL lock during flushesfs/xfs/quota/xfs_dquot.c fs/xfs/xfs_inode.c fs/xfs/xfs_trans_priv.h+32 -141 reply
5/8XFS: Move the AIL lock into the struct xfs_ailfs/xfs/quota/xfs_dquot.c fs/xfs/quota/xfs_dquot_item.c fs/xfs/xfs_buf_item.c +9 more+59 -581 reply
6/8XFS: Given the log a pointer to the AILfs/xfs/xfs_log.c fs/xfs/xfs_log_priv.h fs/xfs/xfs_log_recover.c+26 -202 replies
7/8XFS: Add ail pointer into log itemsfs/xfs/xfs_buf_item.c fs/xfs/xfs_extfree_item.c fs/xfs/xfs_inode_item.c +3 more+40 -142 replies
8/8XFS: Finish removing the mount pointer from the AIL APIfs/xfs/quota/xfs_dquot.c fs/xfs/quota/xfs_dquot_item.c fs/xfs/xfs_buf_item.c +11 more+91 -1211 reply

Reviews trailers per patch

No Reviewed-by, Acked-by or Tested-by trailers for v1 yet.

Read the v1 thread

Cover letter [PATCH 0/8] XFS: AIL cleanup and bug fixes

Clean up the AIL interfaces and the way it is referenced by external code by making the struct xfs_ail the primary method of accessing the AIL.

The main bug fix in this patch series is the second patch - it fixes the restart bug in traversals of the AIL. The method used is to track the next item in the list in a stack based cursor so we don't need to trust the current log item after we've dropped the AIL lock.

Because this changes the interface to the traversal code, it makes sense to clean up the entire AIL subsystem interface while I am there. The overall goal here is to make the struct xfs_ail the sole structure used to access the AIL - for inserts, deletes, traversals, locking, etc so that we don't need to reference the xfs_mount just to get to the AIL.

This also enables us to move the struct xfs_ail definition out of xfs_mount.h and reduce the visible scope of it to just the files that need to access members of the structure.