• Dave Chinner's avatar
    xfs: make AIL tail pushing independent of the grant lock · 2ced19cb
    Dave Chinner authored
    The xlog_grant_push_ail() currently takes the grant lock internally to sample
    the tail lsn, last sync lsn and the reserve grant head. Most of the callers
    already hold the grant lock but have to drop it before calling
    xlog_grant_push_ail(). This is a left over from when the AIL tail pushing was
    done in line and hence xlog_grant_push_ail had to drop the grant lock. AIL push
    is now done in another thread and hence we can safely hold the grant lock over
    the entire xlog_grant_push_ail call.
    
    Push the grant lock outside of xlog_grant_push_ail() to simplify the locking
    and synchronisation needed for tail pushing.  This will reduce traffic on the
    grant lock by itself, but this is only one step in preparing for the complete
    removal of the grant lock.
    
    While there, clean up the formatting of xlog_grant_push_ail() to match the
    rest of the XFS code.
    Signed-off-by: default avatarDave Chinner <dchinner@redhat.com>
    Reviewed-by: default avatarChristoph Hellwig <hch@lst.de>
    2ced19cb
xfs_log.c 104 KB