diff options
-rw-r--r-- | fs/btrfs/extent-tree.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/fs/btrfs/extent-tree.c b/fs/btrfs/extent-tree.c index 1c82bead2c08..3d19dcc553aa 100644 --- a/fs/btrfs/extent-tree.c +++ b/fs/btrfs/extent-tree.c | |||
@@ -442,7 +442,8 @@ next: | |||
442 | if (ret) | 442 | if (ret) |
443 | break; | 443 | break; |
444 | 444 | ||
445 | if (need_resched()) { | 445 | if (need_resched() || |
446 | rwsem_is_contended(&fs_info->extent_commit_sem)) { | ||
446 | caching_ctl->progress = last; | 447 | caching_ctl->progress = last; |
447 | btrfs_release_path(path); | 448 | btrfs_release_path(path); |
448 | up_read(&fs_info->extent_commit_sem); | 449 | up_read(&fs_info->extent_commit_sem); |