[PATCH 1/4] erofs-utils: simplify iloc()

Gao Xiang hsiangkao at linux.alibaba.com
Tue Jul 18 18:14:27 AEST 2023



On 2023/7/18 13:20, Jingbo Xu wrote:
> Signed-off-by: Jingbo Xu <jefflexu at linux.alibaba.com>

Could you please keep in sync with the kernel commit
b780d3fc6107464dcc43631a6208c43b6421f1e6.

I mean, use the name "erofs_iloc()" instead.


Thanks,
Gao Xiang

> ---
>   fsck/main.c              |  2 +-
>   include/erofs/internal.h | 10 +++++-----
>   lib/data.c               |  4 ++--
>   lib/namei.c              |  2 +-
>   lib/xattr.c              |  8 ++++----
>   lib/zmap.c               |  6 +++---
>   6 files changed, 16 insertions(+), 16 deletions(-)
> 
> diff --git a/fsck/main.c b/fsck/main.c
> index 608635e..498c646 100644
> --- a/fsck/main.c
> +++ b/fsck/main.c
> @@ -325,7 +325,7 @@ static int erofs_verify_xattr(struct erofs_inode *inode)
>   		}
>   	}
>   
> -	addr = iloc(inode->nid) + inode->inode_isize;
> +	addr = iloc(inode) + inode->inode_isize;
>   	ret = dev_read(0, buf, addr, xattr_hdr_size);
>   	if (ret < 0) {
>   		erofs_err("failed to read xattr header @ nid %llu: %d",
> diff --git a/include/erofs/internal.h b/include/erofs/internal.h
> index 46690f5..23f64b7 100644
> --- a/include/erofs/internal.h
> +++ b/include/erofs/internal.h
> @@ -103,11 +103,6 @@ struct erofs_sb_info {
>   /* make sure that any user of the erofs headers has atleast 64bit off_t type */
>   extern int erofs_assert_largefile[sizeof(off_t)-8];
>   
> -static inline erofs_off_t iloc(erofs_nid_t nid)
> -{
> -	return erofs_pos(sbi.meta_blkaddr) + (nid << sbi.islotbits);
> -}
> -
>   #define EROFS_FEATURE_FUNCS(name, compat, feature) \
>   static inline bool erofs_sb_has_##name(void) \
>   { \
> @@ -219,6 +214,11 @@ struct erofs_inode {
>   	unsigned int fragment_size;
>   };
>   
> +static inline erofs_off_t iloc(struct erofs_inode *inode)
> +{
> +	return erofs_pos(sbi.meta_blkaddr) + (inode->nid << sbi.islotbits);
> +}
> +
>   static inline bool is_inode_layout_compression(struct erofs_inode *inode)
>   {
>   	return erofs_inode_is_data_compressed(inode->datalayout);
> diff --git a/lib/data.c b/lib/data.c
> index 612112a..cc8ff2b 100644
> --- a/lib/data.c
> +++ b/lib/data.c
> @@ -33,7 +33,7 @@ static int erofs_map_blocks_flatmode(struct erofs_inode *inode,
>   		map->m_plen = erofs_pos(lastblk) - offset;
>   	} else if (tailendpacking) {
>   		/* 2 - inode inline B: inode, [xattrs], inline last blk... */
> -		map->m_pa = iloc(vi->nid) + vi->inode_isize +
> +		map->m_pa = iloc(vi) + vi->inode_isize +
>   			vi->xattr_isize + erofs_blkoff(map->m_la);
>   		map->m_plen = inode->i_size - offset;
>   
> @@ -89,7 +89,7 @@ int erofs_map_blocks(struct erofs_inode *inode,
>   		unit = EROFS_BLOCK_MAP_ENTRY_SIZE;	/* block map */
>   
>   	chunknr = map->m_la >> vi->u.chunkbits;
> -	pos = roundup(iloc(vi->nid) + vi->inode_isize +
> +	pos = roundup(iloc(vi) + vi->inode_isize +
>   		      vi->xattr_isize, unit) + unit * chunknr;
>   
>   	err = blk_read(0, buf, erofs_blknr(pos), 1);
> diff --git a/lib/namei.c b/lib/namei.c
> index 3751741..4b7e3e4 100644
> --- a/lib/namei.c
> +++ b/lib/namei.c
> @@ -28,7 +28,7 @@ int erofs_read_inode_from_disk(struct erofs_inode *vi)
>   	char buf[sizeof(struct erofs_inode_extended)];
>   	struct erofs_inode_compact *dic;
>   	struct erofs_inode_extended *die;
> -	const erofs_off_t inode_loc = iloc(vi->nid);
> +	const erofs_off_t inode_loc = iloc(vi);
>   
>   	ret = dev_read(0, buf, inode_loc, sizeof(*dic));
>   	if (ret < 0)
> diff --git a/lib/xattr.c b/lib/xattr.c
> index 87a95c7..5ad2d25 100644
> --- a/lib/xattr.c
> +++ b/lib/xattr.c
> @@ -871,8 +871,8 @@ static int init_inode_xattrs(struct erofs_inode *vi)
>   		return -ENOATTR;
>   	}
>   
> -	it.blkaddr = erofs_blknr(iloc(vi->nid) + vi->inode_isize);
> -	it.ofs = erofs_blkoff(iloc(vi->nid) + vi->inode_isize);
> +	it.blkaddr = erofs_blknr(iloc(vi) + vi->inode_isize);
> +	it.ofs = erofs_blkoff(iloc(vi) + vi->inode_isize);
>   
>   	ret = blk_read(0, it.page, it.blkaddr, 1);
>   	if (ret < 0)
> @@ -962,8 +962,8 @@ static int inline_xattr_iter_pre(struct xattr_iter *it,
>   
>   	inline_xattr_ofs = vi->inode_isize + xattr_header_sz;
>   
> -	it->blkaddr = erofs_blknr(iloc(vi->nid) + inline_xattr_ofs);
> -	it->ofs = erofs_blkoff(iloc(vi->nid) + inline_xattr_ofs);
> +	it->blkaddr = erofs_blknr(iloc(vi) + inline_xattr_ofs);
> +	it->ofs = erofs_blkoff(iloc(vi) + inline_xattr_ofs);
>   
>   	ret = blk_read(0, it->page, it->blkaddr, 1);
>   	if (ret < 0)
> diff --git a/lib/zmap.c b/lib/zmap.c
> index 209b5d7..b0ae88e 100644
> --- a/lib/zmap.c
> +++ b/lib/zmap.c
> @@ -39,7 +39,7 @@ static int z_erofs_fill_inode_lazy(struct erofs_inode *vi)
>   	if (vi->flags & EROFS_I_Z_INITED)
>   		return 0;
>   
> -	pos = round_up(iloc(vi->nid) + vi->inode_isize + vi->xattr_isize, 8);
> +	pos = round_up(iloc(vi) + vi->inode_isize + vi->xattr_isize, 8);
>   	ret = dev_read(0, buf, pos, sizeof(buf));
>   	if (ret < 0)
>   		return -EIO;
> @@ -143,7 +143,7 @@ static int legacy_load_cluster_from_disk(struct z_erofs_maprecorder *m,
>   					 unsigned long lcn)
>   {
>   	struct erofs_inode *const vi = m->inode;
> -	const erofs_off_t ibase = iloc(vi->nid);
> +	const erofs_off_t ibase = iloc(vi);
>   	const erofs_off_t pos = Z_EROFS_FULL_INDEX_ALIGN(ibase +
>   			vi->inode_isize + vi->xattr_isize) +
>   		lcn * sizeof(struct z_erofs_lcluster_index);
> @@ -342,7 +342,7 @@ static int compacted_load_cluster_from_disk(struct z_erofs_maprecorder *m,
>   {
>   	struct erofs_inode *const vi = m->inode;
>   	const unsigned int lclusterbits = vi->z_logical_clusterbits;
> -	const erofs_off_t ebase = round_up(iloc(vi->nid) + vi->inode_isize +
> +	const erofs_off_t ebase = round_up(iloc(vi) + vi->inode_isize +
>   					   vi->xattr_isize, 8) +
>   		sizeof(struct z_erofs_map_header);
>   	const unsigned int totalidx = BLK_ROUND_UP(vi->i_size);


More information about the Linux-erofs mailing list