Btrfs: be more polite in the async caching threads
[linux-2.6-block.git] / fs / btrfs / extent-tree.c
index 2fe21fa74913448431847ef7c3090ced37df61d4..dc84daee6bc472dbc480efd7ad179933277c5eb4 100644 (file)
@@ -302,10 +302,11 @@ again:
                        else if (ret)
                                break;
 
-                       if (need_resched()) {
+                       if (need_resched() ||
+                           btrfs_transaction_in_commit(fs_info)) {
                                btrfs_release_path(fs_info->extent_root, path);
                                up_read(&fs_info->extent_commit_sem);
-                               cond_resched();
+                               schedule_timeout(1);
                                goto again;
                        }