@@ -81,13 +81,13 @@ static int erofs_init_inode_xattrs(struct inode *inode)
81
81
it .pos = erofs_iloc (inode ) + vi -> inode_isize ;
82
82
83
83
/* 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 );
85
85
if (IS_ERR (it .kaddr )) {
86
86
ret = PTR_ERR (it .kaddr );
87
87
goto out_unlock ;
88
88
}
89
89
90
- ih = it .kaddr + erofs_blkoff ( sb , it . pos ) ;
90
+ ih = it .kaddr ;
91
91
vi -> xattr_name_filter = le32_to_cpu (ih -> h_name_filter );
92
92
vi -> xattr_shared_count = ih -> h_shared_count ;
93
93
vi -> xattr_shared_xattrs = kmalloc_array (vi -> xattr_shared_count ,
@@ -102,16 +102,14 @@ static int erofs_init_inode_xattrs(struct inode *inode)
102
102
it .pos += sizeof (struct erofs_xattr_ibody_header );
103
103
104
104
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 );
107
106
if (IS_ERR (it .kaddr )) {
108
107
kfree (vi -> xattr_shared_xattrs );
109
108
vi -> xattr_shared_xattrs = NULL ;
110
109
ret = PTR_ERR (it .kaddr );
111
110
goto out_unlock ;
112
111
}
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 );
115
113
it .pos += sizeof (__le32 );
116
114
}
117
115
erofs_put_metabuf (& it .buf );
@@ -185,12 +183,11 @@ static int erofs_xattr_copy_to_buffer(struct erofs_xattr_iter *it,
185
183
void * src ;
186
184
187
185
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 );
190
187
if (IS_ERR (it -> kaddr ))
191
188
return PTR_ERR (it -> kaddr );
192
189
193
- src = it -> kaddr + erofs_blkoff ( sb , it -> pos ) ;
190
+ src = it -> kaddr ;
194
191
slice = min_t (unsigned int , sb -> s_blocksize -
195
192
erofs_blkoff (sb , it -> pos ), len - processed );
196
193
memcpy (it -> buffer + it -> buffer_ofs , src , slice );
@@ -208,8 +205,7 @@ static int erofs_listxattr_foreach(struct erofs_xattr_iter *it)
208
205
int err ;
209
206
210
207
/* 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 ;
213
209
it -> pos += sizeof (struct erofs_xattr_entry );
214
210
215
211
base_index = entry .e_name_index ;
@@ -259,8 +255,7 @@ static int erofs_getxattr_foreach(struct erofs_xattr_iter *it)
259
255
unsigned int slice , processed , value_sz ;
260
256
261
257
/* 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 ;
264
259
it -> pos += sizeof (struct erofs_xattr_entry );
265
260
value_sz = le16_to_cpu (entry .e_value_size );
266
261
@@ -291,16 +286,15 @@ static int erofs_getxattr_foreach(struct erofs_xattr_iter *it)
291
286
292
287
/* 2. handle xattr name */
293
288
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 );
296
290
if (IS_ERR (it -> kaddr ))
297
291
return PTR_ERR (it -> kaddr );
298
292
299
293
slice = min_t (unsigned int ,
300
294
sb -> s_blocksize - erofs_blkoff (sb , it -> pos ),
301
295
entry .e_name_len - processed );
302
296
if (memcmp (it -> name .name + it -> infix_len + processed ,
303
- it -> kaddr + erofs_blkoff ( sb , it -> pos ) , slice ))
297
+ it -> kaddr , slice ))
304
298
return - ENOATTR ;
305
299
it -> pos += slice ;
306
300
}
@@ -336,13 +330,11 @@ static int erofs_xattr_iter_inline(struct erofs_xattr_iter *it,
336
330
it -> pos = erofs_iloc (inode ) + vi -> inode_isize + xattr_header_sz ;
337
331
338
332
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 );
341
334
if (IS_ERR (it -> kaddr ))
342
335
return PTR_ERR (it -> kaddr );
343
336
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 );
346
338
/* xattr on-disk corruption: xattr entry beyond xattr_isize */
347
339
if (remaining < entry_sz ) {
348
340
DBG_BUGON (1 );
@@ -375,8 +367,7 @@ static int erofs_xattr_iter_shared(struct erofs_xattr_iter *it,
375
367
for (i = 0 ; i < vi -> xattr_shared_count ; ++ i ) {
376
368
it -> pos = erofs_pos (sb , sbi -> xattr_blkaddr ) +
377
369
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 );
380
371
if (IS_ERR (it -> kaddr ))
381
372
return PTR_ERR (it -> kaddr );
382
373
0 commit comments