diff options
| author | Linux Build Service Account <lnxbuild@localhost> | 2017-03-21 05:00:56 -0700 |
|---|---|---|
| committer | Gerrit - the friendly Code Review server <code-review@localhost> | 2017-03-21 05:00:55 -0700 |
| commit | ce96e448b2a57a6ec43a91a24d1dbb3f5f4095e3 (patch) | |
| tree | 4f3b6e1a6fa91d46f6265d3134418debd77848bc /fs/btrfs/async-thread.c | |
| parent | b23c3fca0596a7e23dc26cb54b719774eb7d3045 (diff) | |
| parent | 78cbd38fd58116df6d09bfc6166cf57b90d0711d (diff) | |
Merge "Merge tag 'lsk-v4.4-17.02-android' into branch 'msm-4.4'"
Diffstat (limited to 'fs/btrfs/async-thread.c')
| -rw-r--r-- | fs/btrfs/async-thread.c | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/fs/btrfs/async-thread.c b/fs/btrfs/async-thread.c index 9aba42b78253..a09264d8b853 100644 --- a/fs/btrfs/async-thread.c +++ b/fs/btrfs/async-thread.c @@ -70,6 +70,20 @@ void btrfs_##name(struct work_struct *arg) \ normal_work_helper(work); \ } +bool btrfs_workqueue_normal_congested(struct btrfs_workqueue *wq) +{ + /* + * We could compare wq->normal->pending with num_online_cpus() + * to support "thresh == NO_THRESHOLD" case, but it requires + * moving up atomic_inc/dec in thresh_queue/exec_hook. Let's + * postpone it until someone needs the support of that case. + */ + if (wq->normal->thresh == NO_THRESHOLD) + return false; + + return atomic_read(&wq->normal->pending) > wq->normal->thresh * 2; +} + BTRFS_WORK_HELPER(worker_helper); BTRFS_WORK_HELPER(delalloc_helper); BTRFS_WORK_HELPER(flush_delalloc_helper); |
