summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorpangliyuan <pangliyuan1@huawei.com>2024-12-10 17:08:42 +0800
committerAndrew Morton <akpm@linux-foundation.org>2025-01-12 20:21:08 -0800
commit78188dd1d24b9d4cd78431feaa13120cfa37ca6a (patch)
tree0f773c3ee39f9afcb34b916a1efab5634ca3dafd
parent0fafc9e1563fbacb92b19ccbde5b8e73280d34b7 (diff)
Squashfs: don't allocate fragment caches more than fragments
Sometimes the actual number of fragments in image is between 0 and SQUASHFS_CACHED_FRAGMENTS, which cause additional fragment caches to be allocated. Sets the number of fragment caches to the minimum of fragments and SQUASHFS_CACHED_FRAGMENTS. Link: https://lkml.kernel.org/r/20241210090842.160853-1-pangliyuan1@huawei.com Signed-off-by: pangliyuan <pangliyuan1@huawei.com> Reviewed-by: Phillip Lougher <phillip@squashfs.org.uk> Cc: <wangfangpeng1@huawei.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
-rw-r--r--fs/squashfs/super.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/fs/squashfs/super.c b/fs/squashfs/super.c
index 22e812808e5c..269c6d61bc29 100644
--- a/fs/squashfs/super.c
+++ b/fs/squashfs/super.c
@@ -405,7 +405,7 @@ handle_fragments:
goto check_directory_table;
msblk->fragment_cache = squashfs_cache_init("fragment",
- SQUASHFS_CACHED_FRAGMENTS, msblk->block_size);
+ min(SQUASHFS_CACHED_FRAGMENTS, fragments), msblk->block_size);
if (msblk->fragment_cache == NULL) {
err = -ENOMEM;
goto failed_mount;