• Chris Mason's avatar
    Btrfs: avoid sleeping in verify_parent_transid while atomic · b9fab919
    Chris Mason authored
    verify_parent_transid needs to lock the extent range to make
    sure no IO is underway, and so it can safely clear the
    uptodate bits if our checks fail.
    
    But, a few callers are using it with spinlocks held.  Most
    of the time, the generation numbers are going to match, and
    we don't want to switch to a blocking lock just for the error
    case.  This adds an atomic flag to verify_parent_transid,
    and changes it to return EAGAIN if it needs to block to
    properly verifiy things.
    Signed-off-by: default avatarChris Mason <chris.mason@oracle.com>
    b9fab919
ctree.c 112 KB