Re: [PATCH] Squashfs: Dont allocate fragment caches more than fragments

From: Phillip Lougher
Date: Sun Dec 15 2024 - 17:40:58 EST


On 10/12/2024 09:08, pangliyuan wrote:
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.

Signed-off-by: pangliyuan <pangliyuan1@xxxxxxxxxx>

A small but useful optimisation.

Reviewed-by: Phillip Lougher <phillip@xxxxxxxxxxxxxxx>

---
fs/squashfs/super.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

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 @@ static int squashfs_fill_super(struct super_block *sb, struct fs_context *fc)
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;