From f25751615ad15076ff7d2621f1c850caca8acff5 Mon Sep 17 00:00:00 2001 From: "Yan, Zheng" Date: Wed, 14 Oct 2009 09:24:59 -0400 Subject: [PATCH] --- yaml --- r: 167589 b: refs/heads/master c: 86df7eb921a009515285e7171363fa57dd2d7d31 h: refs/heads/master i: 167587: c7cd307eddb5fd836dad5b49451082168fd318e7 v: v3 --- [refs] | 2 +- trunk/fs/btrfs/tree-log.c | 11 ++++++----- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/[refs] b/[refs] index e64bf2ddf780..dd39e4575518 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 5d5e103a70f74ae98e3965a4add1ab951d0651d1 +refs/heads/master: 86df7eb921a009515285e7171363fa57dd2d7d31 diff --git a/trunk/fs/btrfs/tree-log.c b/trunk/fs/btrfs/tree-log.c index 4aff766d171a..f51bf13125c0 100644 --- a/trunk/fs/btrfs/tree-log.c +++ b/trunk/fs/btrfs/tree-log.c @@ -1995,12 +1995,13 @@ int btrfs_sync_log(struct btrfs_trans_handle *trans, if (atomic_read(&root->log_commit[(index1 + 1) % 2])) wait_log_commit(trans, root, root->log_transid - 1); - while (root->log_multiple_pids) { + while (1) { unsigned long batch = root->log_batch; - mutex_unlock(&root->log_mutex); - schedule_timeout_uninterruptible(1); - mutex_lock(&root->log_mutex); - + if (root->log_multiple_pids) { + mutex_unlock(&root->log_mutex); + schedule_timeout_uninterruptible(1); + mutex_lock(&root->log_mutex); + } wait_for_writer(trans, root); if (batch == root->log_batch) break;