diff options
author | Phillip Lougher <phillip@squashfs.org.uk> | 2022-08-22 22:54:30 +0100 |
---|---|---|
committer | Andrew Morton <akpm@linux-foundation.org> | 2022-08-28 14:02:45 -0700 |
commit | 1f13dff09ffc8bcf6aa20639b638d813379c7f6b (patch) | |
tree | b5fea4fe8fed9c9688db989c1ce7a6dafc0a4759 /fs/squashfs/file_direct.c | |
parent | d26f60703606ab425eee9882b32a1781a8bed74d (diff) | |
download | linux-1f13dff09ffc8bcf6aa20639b638d813379c7f6b.tar.gz |
squashfs: don't call kmalloc in decompressors
The decompressors may be called while in an atomic section. So move the
kmalloc() out of this path, and into the "page actor" init function.
This fixes a regression introduced by commit
f268eedddf35 ("squashfs: extend "page actor" to handle missing pages")
Link: https://lkml.kernel.org/r/20220822215430.15933-1-phillip@squashfs.org.uk
Fixes: f268eedddf35 ("squashfs: extend "page actor" to handle missing pages")
Reported-by: Chris Murphy <lists@colorremedies.com>
Signed-off-by: Phillip Lougher <phillip@squashfs.org.uk>
Cc: <stable@vger.kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Diffstat (limited to 'fs/squashfs/file_direct.c')
-rw-r--r-- | fs/squashfs/file_direct.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/fs/squashfs/file_direct.c b/fs/squashfs/file_direct.c index be4b12d31e0c..f1ccad519e28 100644 --- a/fs/squashfs/file_direct.c +++ b/fs/squashfs/file_direct.c @@ -74,7 +74,7 @@ int squashfs_readpage_block(struct page *target_page, u64 block, int bsize, /* Decompress directly into the page cache buffers */ res = squashfs_read_data(inode->i_sb, block, bsize, NULL, actor); - kfree(actor); + squashfs_page_actor_free(actor); if (res < 0) goto mark_errored; |