浏览代码

Btrfs: wake up delayed ref flushing waiters on abort

I hit a deadlock because we aborted when flushing delayed refs but didn't wake
any of the other flushers up and so everybody was just sleeping forever.  This
should fix the problem.  Thanks,

Signed-off-by: Josef Bacik <jbacik@fusionio.com>
Josef Bacik 12 年之前
父节点
当前提交
f971fe29b1
共有 1 个文件被更改,包括 1 次插入0 次删除
  1. 1 0
      fs/btrfs/extent-tree.c

+ 1 - 0
fs/btrfs/extent-tree.c

@@ -2629,6 +2629,7 @@ again:
 			spin_unlock(&delayed_refs->lock);
 			btrfs_abort_transaction(trans, root, ret);
 			atomic_dec(&delayed_refs->procs_running_refs);
+			wake_up(&delayed_refs->wait);
 			return ret;
 		}