• Josef Bacik's avatar
    Btrfs: handle errors in compression submission path · 3e04e7f1
    Josef Bacik authored
    I noticed we would deadlock if we aborted a transaction while doing
    compressed io.  This is because we don't unlock our pages if something goes
    horribly wrong.  To fix this we need to make sure that we call
    extent_clear_unlock_delalloc in order to unlock all the pages.  If we have
    to cow in the async submission thread we need to make sure to unlock our
    locked_page as the cow error path will not unlock the locked page as it
    depends on the caller to unlock that page.  With this patch we no longer
    deadlock on the page lock when we have an aborted transaction.  Thanks,
    Signed-off-by: default avatarJosef Bacik <jbacik@fusionio.com>
    3e04e7f1
inode.c 215 KB