fs-verity: use mempool for hash requests
authorEric Biggers <ebiggers@google.com>
Tue, 31 Dec 2019 17:55:45 +0000 (11:55 -0600)
committerEric Biggers <ebiggers@google.com>
Tue, 14 Jan 2020 21:28:05 +0000 (13:28 -0800)
commit439bea104c3d212def0216aa8c0820872266c5b3
tree1de5689485baeaac6b66822c57a519021a203469
parentfd39073dba8632575b920edefba2577e1b84262a
fs-verity: use mempool for hash requests

When initializing an fs-verity hash algorithm, also initialize a mempool
that contains a single preallocated hash request object.  Then replace
the direct calls to ahash_request_alloc() and ahash_request_free() with
allocating and freeing from this mempool.

This eliminates the possibility of the allocation failing, which is
desirable for the I/O path.

This doesn't cause deadlocks because there's no case where multiple hash
requests are needed at a time to make forward progress.

Link: https://lore.kernel.org/r/20191231175545.20709-1-ebiggers@kernel.org
Reviewed-by: Theodore Ts'o <tytso@mit.edu>
Signed-off-by: Eric Biggers <ebiggers@google.com>
fs/verity/enable.c
fs/verity/fsverity_private.h
fs/verity/hash_algs.c
fs/verity/open.c
fs/verity/verify.c