• Christoph Hellwig's avatar
    [XFS] kill xfs_lock_dir_and_entry · e1cccd91
    Christoph Hellwig authored
    When multiple inodes are locked in XFS it happens in order of the inode
    number, with the everything but the first inode trylocked if any of the
    previous inodes is in the AIL.
    
    Except for the sorting of the inodes this logic is implemented in
    xfs_lock_inodes, but also partially duplicated in xfs_lock_dir_and_entry
    in a particularly stupid way adds a lock roundtrip if the inode ordering
    is not optimal.
    
    This patch adds a new helper xfs_lock_two_inodes that takes two inodes and
    locks them in the most optimal way according to the above locking protocol
    and uses it for all places that want to lock two inodes.
    
    The only caller of xfs_lock_inodes is xfs_rename which might lock up to
    four inodes.
    
    SGI-PV: 981498
    
    SGI-Modid: xfs-linux-melb:xfs-kern:31772a
    Signed-off-by: default avatarChristoph Hellwig <hch@infradead.org>
    Signed-off-by: default avatarDonald Douwsma <donaldd@sgi.com>
    Signed-off-by: default avatarLachlan McIlroy <lachlan@sgi.com>
    e1cccd91
xfs_inode.h 19.9 KB