xfs
[Top] [All Lists]

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

To: Dave Chinner <david@xxxxxxxxxxxxx>
Subject: Re: [PATCH 1/8] xfs: Pull EFI/EFD handling out from under the AIL lock
From: Christoph Hellwig <hch@xxxxxxxxxxxxx>
Date: Tue, 30 Nov 2010 15:17:34 -0500
Cc: xfs@xxxxxxxxxxx
In-reply-to: <1290993152-20999-2-git-send-email-david@xxxxxxxxxxxxx>
References: <1290993152-20999-1-git-send-email-david@xxxxxxxxxxxxx> <1290993152-20999-2-git-send-email-david@xxxxxxxxxxxxx>
User-agent: Mutt/1.5.21 (2010-09-15)
 - 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?

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