• Dave Chinner's avatar
    xfs: xfs_iflush() is no longer necessary · 90c60e16
    Dave Chinner authored
    Now we have a cached buffer on inode log items, we don't need
    to do buffer lookups when flushing inodes anymore - all we need
    to do is lock the buffer and we are ready to go.
    
    This largely gets rid of the need for xfs_iflush(), which is
    essentially just a mechanism to look up the buffer and flush the
    inode to it. Instead, we can just call xfs_iflush_cluster() with a
    few modifications to ensure it also flushes the inode we already
    hold locked.
    
    This allows the AIL inode item pushing to be almost entirely
    non-blocking in XFS - we won't block unless memory allocation
    for the cluster inode lookup blocks or the block device queues are
    full.
    
    Writeback during inode reclaim becomes a little more complex because
    we now have to lock the buffer ourselves, but otherwise this change
    is largely a functional no-op that removes a whole lot of code.
    Signed-off-by: default avatarDave Chinner <dchinner@redhat.com>
    Reviewed-by: default avatarDarrick J. Wong <darrick.wong@oracle.com>
    Reviewed-by: default avatarBrian Foster <bfoster@redhat.com>
    Signed-off-by: default avatarDarrick J. Wong <darrick.wong@oracle.com>
    90c60e16
xfs_inode_item.c 22.2 KB