[PATCH 1/8] xfs: Pull EFI/EFD handling out from under the AIL lock

Christoph Hellwig hch at infradead.org
Tue Nov 30 14:17:34 CST 2010


 - xfs_efi_init needs to initialize efi_next_extent using ATOMIC_INIT
 - there is a behaviour change about the xfs_trans_del_item call
   in xfs_efi_item_unpin - before it was protected by the
   XFS_EFI_CANCELED which was never set, and now it's not.
 - what happened to XFS_EFI_RECOVERED?  You changed it to be indexed
   for the atomic bit-ops, but it's still used non-atomic in the log
   recovery code.
 - Why is XFS_EFI_COMMITTED cleared in xlog_recover_do_efi_trans,
   where it can't ever be set?
 - can you please add a shared helper for xfs_efi_item_unpin and
   xfs_efi_release, ala:

STATIC void
__xfs_efi_release(
	xfs_efi_log_item_t	*efip)
{
	if (!test_and_clear_bit(XFS_EFI_COMMITTED, &efip->efi_flags)) {
		struct xfs_ail          *ailp = efip->efi_item.li_ailp;

		spin_lock(&ailp->xa_lock);
		/* xfs_trans_ail_delete() drops the AIL lock. */
		xfs_trans_ail_delete(ailp, &efip->efi_item);
		xfs_efi_item_free(efip);
	}

   so that it's obvious they do the same release operation?




More information about the xfs mailing list