]> git.baikalelectronics.ru Git - kernel.git/commit
Btrfs: unpin logs if rename exchange operation fails
authorFilipe Manana <fdmanana@suse.com>
Thu, 5 May 2016 01:02:27 +0000 (02:02 +0100)
committerFilipe Manana <fdmanana@suse.com>
Fri, 13 May 2016 00:59:26 +0000 (01:59 +0100)
commit024d26ba72343402ec84cea76a950b61ffe62ea6
tree6de82edb458fd5928ed52fb9b70b3bcc07f3128b
parentc729e26742952b1921f779bf7e50735c512f6da3
Btrfs: unpin logs if rename exchange operation fails

If rename exchange operations fail at some point after we pinned any of
the logs, we end up aborting the current transaction but never unpin the
logs, which leaves concurrent tasks that are trying to sync the logs (as
part of an fsync request from user space) blocked forever and preventing
the filesystem from being unmountable.

Fix this by safely unpinning the log.

Signed-off-by: Filipe Manana <fdmanana@suse.com>
fs/btrfs/inode.c