@@ -81,13 +81,13 @@ static int erofs_init_inode_xattrs(struct inode *inode)
8181 it .pos = erofs_iloc (inode ) + vi -> inode_isize ;
8282
8383 /* read in shared xattr array (non-atomic, see kmalloc below) */
84- it .kaddr = erofs_bread (& it .buf , erofs_blknr ( sb , it .pos ) , EROFS_KMAP );
84+ it .kaddr = erofs_bread (& it .buf , it .pos , EROFS_KMAP );
8585 if (IS_ERR (it .kaddr )) {
8686 ret = PTR_ERR (it .kaddr );
8787 goto out_unlock ;
8888 }
8989
90- ih = it .kaddr + erofs_blkoff ( sb , it . pos ) ;
90+ ih = it .kaddr ;
9191 vi -> xattr_name_filter = le32_to_cpu (ih -> h_name_filter );
9292 vi -> xattr_shared_count = ih -> h_shared_count ;
9393 vi -> xattr_shared_xattrs = kmalloc_array (vi -> xattr_shared_count ,
@@ -102,16 +102,14 @@ static int erofs_init_inode_xattrs(struct inode *inode)
102102 it .pos += sizeof (struct erofs_xattr_ibody_header );
103103
104104 for (i = 0 ; i < vi -> xattr_shared_count ; ++ i ) {
105- it .kaddr = erofs_bread (& it .buf , erofs_blknr (sb , it .pos ),
106- EROFS_KMAP );
105+ it .kaddr = erofs_bread (& it .buf , it .pos , EROFS_KMAP );
107106 if (IS_ERR (it .kaddr )) {
108107 kfree (vi -> xattr_shared_xattrs );
109108 vi -> xattr_shared_xattrs = NULL ;
110109 ret = PTR_ERR (it .kaddr );
111110 goto out_unlock ;
112111 }
113- vi -> xattr_shared_xattrs [i ] = le32_to_cpu (* (__le32 * )
114- (it .kaddr + erofs_blkoff (sb , it .pos )));
112+ vi -> xattr_shared_xattrs [i ] = le32_to_cpu (* (__le32 * )it .kaddr );
115113 it .pos += sizeof (__le32 );
116114 }
117115 erofs_put_metabuf (& it .buf );
@@ -185,12 +183,11 @@ static int erofs_xattr_copy_to_buffer(struct erofs_xattr_iter *it,
185183 void * src ;
186184
187185 for (processed = 0 ; processed < len ; processed += slice ) {
188- it -> kaddr = erofs_bread (& it -> buf , erofs_blknr (sb , it -> pos ),
189- EROFS_KMAP );
186+ it -> kaddr = erofs_bread (& it -> buf , it -> pos , EROFS_KMAP );
190187 if (IS_ERR (it -> kaddr ))
191188 return PTR_ERR (it -> kaddr );
192189
193- src = it -> kaddr + erofs_blkoff ( sb , it -> pos ) ;
190+ src = it -> kaddr ;
194191 slice = min_t (unsigned int , sb -> s_blocksize -
195192 erofs_blkoff (sb , it -> pos ), len - processed );
196193 memcpy (it -> buffer + it -> buffer_ofs , src , slice );
@@ -208,8 +205,7 @@ static int erofs_listxattr_foreach(struct erofs_xattr_iter *it)
208205 int err ;
209206
210207 /* 1. handle xattr entry */
211- entry = * (struct erofs_xattr_entry * )
212- (it -> kaddr + erofs_blkoff (it -> sb , it -> pos ));
208+ entry = * (struct erofs_xattr_entry * )it -> kaddr ;
213209 it -> pos += sizeof (struct erofs_xattr_entry );
214210
215211 base_index = entry .e_name_index ;
@@ -259,8 +255,7 @@ static int erofs_getxattr_foreach(struct erofs_xattr_iter *it)
259255 unsigned int slice , processed , value_sz ;
260256
261257 /* 1. handle xattr entry */
262- entry = * (struct erofs_xattr_entry * )
263- (it -> kaddr + erofs_blkoff (sb , it -> pos ));
258+ entry = * (struct erofs_xattr_entry * )it -> kaddr ;
264259 it -> pos += sizeof (struct erofs_xattr_entry );
265260 value_sz = le16_to_cpu (entry .e_value_size );
266261
@@ -291,16 +286,15 @@ static int erofs_getxattr_foreach(struct erofs_xattr_iter *it)
291286
292287 /* 2. handle xattr name */
293288 for (processed = 0 ; processed < entry .e_name_len ; processed += slice ) {
294- it -> kaddr = erofs_bread (& it -> buf , erofs_blknr (sb , it -> pos ),
295- EROFS_KMAP );
289+ it -> kaddr = erofs_bread (& it -> buf , it -> pos , EROFS_KMAP );
296290 if (IS_ERR (it -> kaddr ))
297291 return PTR_ERR (it -> kaddr );
298292
299293 slice = min_t (unsigned int ,
300294 sb -> s_blocksize - erofs_blkoff (sb , it -> pos ),
301295 entry .e_name_len - processed );
302296 if (memcmp (it -> name .name + it -> infix_len + processed ,
303- it -> kaddr + erofs_blkoff ( sb , it -> pos ) , slice ))
297+ it -> kaddr , slice ))
304298 return - ENOATTR ;
305299 it -> pos += slice ;
306300 }
@@ -336,13 +330,11 @@ static int erofs_xattr_iter_inline(struct erofs_xattr_iter *it,
336330 it -> pos = erofs_iloc (inode ) + vi -> inode_isize + xattr_header_sz ;
337331
338332 while (remaining ) {
339- it -> kaddr = erofs_bread (& it -> buf , erofs_blknr (it -> sb , it -> pos ),
340- EROFS_KMAP );
333+ it -> kaddr = erofs_bread (& it -> buf , it -> pos , EROFS_KMAP );
341334 if (IS_ERR (it -> kaddr ))
342335 return PTR_ERR (it -> kaddr );
343336
344- entry_sz = erofs_xattr_entry_size (it -> kaddr +
345- erofs_blkoff (it -> sb , it -> pos ));
337+ entry_sz = erofs_xattr_entry_size (it -> kaddr );
346338 /* xattr on-disk corruption: xattr entry beyond xattr_isize */
347339 if (remaining < entry_sz ) {
348340 DBG_BUGON (1 );
@@ -375,8 +367,7 @@ static int erofs_xattr_iter_shared(struct erofs_xattr_iter *it,
375367 for (i = 0 ; i < vi -> xattr_shared_count ; ++ i ) {
376368 it -> pos = erofs_pos (sb , sbi -> xattr_blkaddr ) +
377369 vi -> xattr_shared_xattrs [i ] * sizeof (__le32 );
378- it -> kaddr = erofs_bread (& it -> buf , erofs_blknr (sb , it -> pos ),
379- EROFS_KMAP );
370+ it -> kaddr = erofs_bread (& it -> buf , it -> pos , EROFS_KMAP );
380371 if (IS_ERR (it -> kaddr ))
381372 return PTR_ERR (it -> kaddr );
382373
@@ -492,7 +483,7 @@ int erofs_xattr_prefixes_init(struct super_block *sb)
492483 return - ENOMEM ;
493484
494485 if (sbi -> packed_inode )
495- buf .inode = sbi -> packed_inode ;
486+ buf .mapping = sbi -> packed_inode -> i_mapping ;
496487 else
497488 erofs_init_metabuf (& buf , sb );
498489
0 commit comments