]> git.baikalelectronics.ru Git - kernel.git/commit
Btrfs: unlock extent range on enospc in compressed submit
authorJosef Bacik <jbacik@fusionio.com>
Fri, 14 Jun 2013 20:58:23 +0000 (16:58 -0400)
committerJosef Bacik <jbacik@fusionio.com>
Mon, 1 Jul 2013 12:52:31 +0000 (08:52 -0400)
commit50c6294561a6bcc1c15eee740c740748429cb728
tree2f20fdf4838107803e69cf27c4bbcc543159b2c9
parentdaa0af6f9037d12fac12c7d76be2a8fc544c88a8
Btrfs: unlock extent range on enospc in compressed submit

A user reported a deadlock where the async submit thread was blocked on the
lock_extent() lock, and then everybody behind him was locked on the page lock
for the page he was holding.  Looking at the code I noticed we do not unlock the
extent range when we get ENOSPC and goto retry.  This is bad because we
immediately try to lock that range again to do the cow, which will cause a
deadlock.  Fix this by unlocking the range.  Thanks,

Signed-off-by: Josef Bacik <jbacik@fusionio.com>
fs/btrfs/inode.c