btrfs: reada: limit max works count
authorZhao Lei <zhaolei@cn.fujitsu.com>
Thu, 7 Jan 2016 10:38:48 +0000 (18:38 +0800)
committerDavid Sterba <dsterba@suse.com>
Thu, 18 Feb 2016 09:27:23 +0000 (10:27 +0100)
commit2fefd5583f8b86171c898f90cadac7c09ccf9d73
tree6f5c406bc2dc0ba63c36f3fb19e2462c9f42739c
parent895a11b868347ca8e287f152f7816862ad4b179d
btrfs: reada: limit max works count

Reada creates 2 works for each level of tree recursively.

In case of a tree having many levels, the number of created works
is 2^level_of_tree.
Actually we don't need so many works in parallel, this patch limits
max works to BTRFS_MAX_MIRRORS * 2.

The per-fs works_counter will be also used for btrfs_reada_wait() to
check is there are background workers.

Signed-off-by: Zhao Lei <zhaolei@cn.fujitsu.com>
Signed-off-by: David Sterba <dsterba@suse.com>
fs/btrfs/ctree.h
fs/btrfs/disk-io.c
fs/btrfs/reada.c