btrfs: make zstd memory requirements monotonic
authorDennis Zhou <dennis@kernel.org>
Mon, 4 Feb 2019 20:20:07 +0000 (15:20 -0500)
committerDavid Sterba <dsterba@suse.com>
Mon, 25 Feb 2019 13:13:33 +0000 (14:13 +0100)
commitd3c6ab752c4145cba9af85021f02bc4655534f93
tree619cc94662837e3fb69c38bb1a1173c95f218e5c
parente0dc87afcdb890e542f6080296ce591cd348c25d
btrfs: make zstd memory requirements monotonic

It is possible based on the level configurations that a higher level
workspace uses less memory than a lower level workspace. In order to
reuse workspaces, this must be made a monotonic relationship. This
precomputes the required memory for each level and enforces the
monotonicity between level and memory required. This is also done
in upstream zstd in [1].

[1] https://github.com/facebook/zstd/commit/a68b76afefec6876f8e8a538155109a5aeac0143

Cc: Nick Terrell <terrelln@fb.com>
Signed-off-by: Dennis Zhou <dennis@kernel.org>
Reviewed-by: David Sterba <dsterba@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
fs/btrfs/zstd.c