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] [thread-next>] [day] [month] [year] [list]
Message-ID: <20251217163521.GO94594@frogsfrogsfrogs>
Date: Wed, 17 Dec 2025 08:35:21 -0800
From: "Darrick J. Wong" <djwong@...nel.org>
To: Wang Jianjian <wangjianjian3@...wei.com>
Cc: tytso@....edu, linux-ext4@...r.kernel.org, wangjianjian0@...mail.com
Subject: Re: [PATCH] ext4,fiemap: Add inode offset for xattr fiemap

On Wed, Dec 17, 2025 at 04:47:08PM +0800, Wang Jianjian wrote:
> For xattr in inode, need add inode offset in this block?
> Also, there is one problem, if we have xattrs both in inode
> and block, current implementation will only return xattr inode fiemap.
> Is this by design?

I don't think there's much value in reporting the inline xattrs via
FIEMAP because user programs can't directly access that area anyway.
The only reason (AFAICT) for reporting the external xattr block is for
building a map of lost data given a report of localized media failure.

(FIEMAP only being useful for debugging and after-the-shatter forensics)

> Signed-off-by: Wang Jianjian <wangjianjian3@...wei.com>
> ---
>  fs/ext4/extents.c | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/fs/ext4/extents.c b/fs/ext4/extents.c
> index 2cf5759ba689..a16bfc75345d 100644
> --- a/fs/ext4/extents.c
> +++ b/fs/ext4/extents.c
> @@ -5043,6 +5043,7 @@ static int ext4_iomap_xattr_fiemap(struct inode *inode, struct iomap *iomap)
>  		if (error)
>  			return error;
>  		physical = (__u64)iloc.bh->b_blocknr << blockbits;
> +		physical += iloc.offset;

Also it doesn't make sense to add the address of the external block to
the inode offset.

--D

>  		offset = EXT4_GOOD_OLD_INODE_SIZE +
>  				EXT4_I(inode)->i_extra_isize;
>  		physical += offset;
> -- 
> 2.34.1
> 
> 

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ