| Index: chrome/browser/sync_file_system/local/local_file_sync_service.cc | 
| diff --git a/chrome/browser/sync_file_system/local/local_file_sync_service.cc b/chrome/browser/sync_file_system/local/local_file_sync_service.cc | 
| index a6e5414147c8be8414c9d5b1360c67c19bbb3617..33fbb34757feabae27d3aacca15f3c41bc094940 100644 | 
| --- a/chrome/browser/sync_file_system/local/local_file_sync_service.cc | 
| +++ b/chrome/browser/sync_file_system/local/local_file_sync_service.cc | 
| @@ -236,6 +236,7 @@ void LocalFileSyncService::PrepareForProcessRemoteChange( | 
| DCHECK(ContainsKey(origin_to_contexts_, url.origin())); | 
| sync_context_->PrepareForSync( | 
| origin_to_contexts_[url.origin()], url, | 
| +      LocalFileSyncContext::SYNC_EXCLUSIVE, | 
| base::Bind(&PrepareForProcessRemoteChangeCallbackAdapter, callback)); | 
| } | 
|  | 
| @@ -418,18 +419,11 @@ void LocalFileSyncService::ProcessNextChangeForURL( | 
|  | 
| const FileSystemURL& url = sync_file_info.url; | 
| if (status != SYNC_STATUS_OK || changes.empty()) { | 
| -    if (status == SYNC_STATUS_OK || status == SYNC_STATUS_HAS_CONFLICT) { | 
| -      // Clear the recorded changes for the URL if the sync was successfull | 
| -      // OR has failed due to conflict (so that we won't stick to the same | 
| -      // conflicting file again and again). | 
| -      DCHECK(ContainsKey(origin_to_contexts_, url.origin())); | 
| -      sync_context_->ClearChangesForURL( | 
| -          origin_to_contexts_[url.origin()], url, | 
| -          base::Bind(&LocalFileSyncService::RunLocalSyncCallback, | 
| -                     AsWeakPtr(), status, url)); | 
| -      return; | 
| -    } | 
| -    RunLocalSyncCallback(status, url); | 
| +    DCHECK(ContainsKey(origin_to_contexts_, url.origin())); | 
| +    sync_context_->CommitChangeStatusForURL( | 
| +        origin_to_contexts_[url.origin()], url, status, | 
| +        base::Bind(&LocalFileSyncService::RunLocalSyncCallback, | 
| +                  AsWeakPtr(), status, url)); | 
| return; | 
| } | 
|  | 
|  |