[PATCH] erofs-utils: change temporal buffer to non static

Yifan Zhao zhaoyifan at sjtu.edu.cn
Mon Apr 8 20:34:56 AEST 2024


Hi Noboru,


AFAIK, this `tryrecompress_trailing` is only used when `may_inline` is 
true, indicating that

this segment is the last one in the file. In the current inner-file 
implementation, it means

that only one worker will use the `tmp` buffer at a given time.


In fact, the `static` modifier is removed in the first version of the 
patchset, but the change

is reversed during the review. I think Xiang may share his opinion about 
this.


Thanks,

Yifan Zhao

On 4/8/24 5:16 PM, Noboru Asai wrote:
> In multi-threaded mode, each thread must use a different buffer in tryrecompress_trailing
> function, so change this buffer to non static.
>
> Signed-off-by: Noboru Asai <asai at sijam.com>
> ---
>   lib/compress.c | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/lib/compress.c b/lib/compress.c
> index 641fde6..7415fda 100644
> --- a/lib/compress.c
> +++ b/lib/compress.c
> @@ -447,7 +447,7 @@ static void tryrecompress_trailing(struct z_erofs_compress_sctx *ctx,
>   				   void *out, unsigned int *compressedsize)
>   {
>   	struct erofs_sb_info *sbi = ctx->ictx->inode->sbi;
> -	static char tmp[Z_EROFS_PCLUSTER_MAX_SIZE];
> +	char tmp[Z_EROFS_PCLUSTER_MAX_SIZE];
>   	unsigned int count;
>   	int ret = *compressedsize;
>   


More information about the Linux-erofs mailing list