lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <zxakbc3a2mwsjmpvvyl5tnaljrpcc4px7r5bh6u3gwe4xarg7d@zrxmpvfhugvs>
Date: Tue, 25 Nov 2025 11:37:11 +0100
From: Jan Kara <jack@...e.cz>
To: libaokun@...weicloud.com
Cc: linux-ext4@...r.kernel.org, tytso@....edu, adilger.kernel@...ger.ca, 
	jack@...e.cz, linux-kernel@...r.kernel.org, yi.zhang@...wei.com, 
	yangerkun@...wei.com, libaokun1@...wei.com
Subject: Re: [PATCH] ext4: align max orphan file size with e2fsprogs limit

On Thu 20-11-25 21:42:33, libaokun@...weicloud.com wrote:
> From: Baokun Li <libaokun1@...wei.com>
> 
> Kernel commit 0a6ce20c1564 ("ext4: verify orphan file size is not too big")
> limits the maximum supported orphan file size to 8 << 20.
> 
> However, in e2fsprogs, the orphan file size is set to 32–512 filesystem
> blocks when creating a filesystem.
> 
> With 64k block size, formatting an ext4 fs >32G gives an orphan file bigger
> than the kernel allows, so mount prints an error and fails:
> 
>     EXT4-fs (vdb): orphan file too big: 8650752
>     EXT4-fs (vdb): mount failed
> 
> To prevent this issue and allow previously created 64KB filesystems to
> mount, we updates the maximum allowed orphan file size in the kernel to
> 512 filesystem blocks.
> 
> Fixes: 0a6ce20c1564 ("ext4: verify orphan file size is not too big")
> Signed-off-by: Baokun Li <libaokun1@...wei.com>

OK, makes sense. Feel free to add:

Reviewed-by: Jan Kara <jack@...e.cz>

								Honza

> ---
>  fs/ext4/orphan.c | 4 +++-
>  1 file changed, 3 insertions(+), 1 deletion(-)
> 
> diff --git a/fs/ext4/orphan.c b/fs/ext4/orphan.c
> index 82d5e7501455..fb57bba0d19d 100644
> --- a/fs/ext4/orphan.c
> +++ b/fs/ext4/orphan.c
> @@ -8,6 +8,8 @@
>  #include "ext4.h"
>  #include "ext4_jbd2.h"
>  
> +#define EXT4_MAX_ORPHAN_FILE_BLOCKS 512
> +
>  static int ext4_orphan_file_add(handle_t *handle, struct inode *inode)
>  {
>  	int i, j, start;
> @@ -588,7 +590,7 @@ int ext4_init_orphan_info(struct super_block *sb)
>  	 * consuming absurd amounts of memory when pinning blocks of orphan
>  	 * file in memory.
>  	 */
> -	if (inode->i_size > 8 << 20) {
> +	if (inode->i_size > (EXT4_MAX_ORPHAN_FILE_BLOCKS << inode->i_blkbits)) {
>  		ext4_msg(sb, KERN_ERR, "orphan file too big: %llu",
>  			 (unsigned long long)inode->i_size);
>  		ret = -EFSCORRUPTED;
> -- 
> 2.46.1
> 
-- 
Jan Kara <jack@...e.com>
SUSE Labs, CR

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ