@@ -81,11 +81,12 @@ static int erofs_init_inode_xattrs(struct inode *inode)
8181 }
8282
8383 it .buf = __EROFS_BUF_INITIALIZER ;
84+ erofs_init_metabuf (& it .buf , sb );
8485 it .blkaddr = erofs_blknr (sb , erofs_iloc (inode ) + vi -> inode_isize );
8586 it .ofs = erofs_blkoff (sb , erofs_iloc (inode ) + vi -> inode_isize );
8687
8788 /* read in shared xattr array (non-atomic, see kmalloc below) */
88- it .kaddr = erofs_read_metabuf (& it .buf , sb , it .blkaddr , EROFS_KMAP );
89+ it .kaddr = erofs_bread (& it .buf , it .blkaddr , EROFS_KMAP );
8990 if (IS_ERR (it .kaddr )) {
9091 ret = PTR_ERR (it .kaddr );
9192 goto out_unlock ;
@@ -109,8 +110,7 @@ static int erofs_init_inode_xattrs(struct inode *inode)
109110 /* cannot be unaligned */
110111 DBG_BUGON (it .ofs != sb -> s_blocksize );
111112
112- it .kaddr = erofs_read_metabuf (& it .buf , sb , ++ it .blkaddr ,
113- EROFS_KMAP );
113+ it .kaddr = erofs_bread (& it .buf , ++ it .blkaddr , EROFS_KMAP );
114114 if (IS_ERR (it .kaddr )) {
115115 kfree (vi -> xattr_shared_xattrs );
116116 vi -> xattr_shared_xattrs = NULL ;
@@ -156,8 +156,7 @@ static inline int xattr_iter_fixup(struct xattr_iter *it)
156156 return 0 ;
157157
158158 it -> blkaddr += erofs_blknr (it -> sb , it -> ofs );
159- it -> kaddr = erofs_read_metabuf (& it -> buf , it -> sb , it -> blkaddr ,
160- EROFS_KMAP );
159+ it -> kaddr = erofs_bread (& it -> buf , it -> blkaddr , EROFS_KMAP );
161160 if (IS_ERR (it -> kaddr ))
162161 return PTR_ERR (it -> kaddr );
163162 it -> ofs = erofs_blkoff (it -> sb , it -> ofs );
@@ -181,8 +180,7 @@ static int inline_xattr_iter_begin(struct xattr_iter *it,
181180
182181 it -> blkaddr = erofs_blknr (it -> sb , erofs_iloc (inode ) + inline_xattr_ofs );
183182 it -> ofs = erofs_blkoff (it -> sb , erofs_iloc (inode ) + inline_xattr_ofs );
184- it -> kaddr = erofs_read_metabuf (& it -> buf , inode -> i_sb , it -> blkaddr ,
185- EROFS_KMAP );
183+ it -> kaddr = erofs_bread (& it -> buf , it -> blkaddr , EROFS_KMAP );
186184 if (IS_ERR (it -> kaddr ))
187185 return PTR_ERR (it -> kaddr );
188186 return vi -> xattr_isize - xattr_header_sz ;
@@ -403,8 +401,7 @@ static int shared_getxattr(struct inode *inode, struct getxattr_iter *it)
403401 xsid = vi -> xattr_shared_xattrs [i ];
404402 it -> it .blkaddr = erofs_xattr_blkaddr (sb , xsid );
405403 it -> it .ofs = erofs_xattr_blkoff (sb , xsid );
406- it -> it .kaddr = erofs_read_metabuf (& it -> it .buf , sb ,
407- it -> it .blkaddr , EROFS_KMAP );
404+ it -> it .kaddr = erofs_bread (& it -> it .buf , it -> it .blkaddr , EROFS_KMAP );
408405 if (IS_ERR (it -> it .kaddr ))
409406 return PTR_ERR (it -> it .kaddr );
410407
@@ -444,13 +441,14 @@ int erofs_getxattr(struct inode *inode, int index,
444441 if (it .name .len > EROFS_NAME_LEN )
445442 return - ERANGE ;
446443
444+ it .it .sb = inode -> i_sb ;
447445 it .it .buf = __EROFS_BUF_INITIALIZER ;
446+ erofs_init_metabuf (& it .it .buf , it .it .sb );
448447 it .name .name = name ;
449448
450449 it .buffer = buffer ;
451450 it .buffer_size = buffer_size ;
452451
453- it .it .sb = inode -> i_sb ;
454452 ret = inline_getxattr (inode , & it );
455453 if (ret == - ENOATTR )
456454 ret = shared_getxattr (inode , & it );
@@ -608,8 +606,7 @@ static int shared_listxattr(struct listxattr_iter *it)
608606 xsid = vi -> xattr_shared_xattrs [i ];
609607 it -> it .blkaddr = erofs_xattr_blkaddr (sb , xsid );
610608 it -> it .ofs = erofs_xattr_blkoff (sb , xsid );
611- it -> it .kaddr = erofs_read_metabuf (& it -> it .buf , sb ,
612- it -> it .blkaddr , EROFS_KMAP );
609+ it -> it .kaddr = erofs_bread (& it -> it .buf , it -> it .blkaddr , EROFS_KMAP );
613610 if (IS_ERR (it -> it .kaddr ))
614611 return PTR_ERR (it -> it .kaddr );
615612
@@ -632,14 +629,14 @@ ssize_t erofs_listxattr(struct dentry *dentry,
632629 if (ret )
633630 return ret ;
634631
632+ it .it .sb = dentry -> d_sb ;
635633 it .it .buf = __EROFS_BUF_INITIALIZER ;
634+ erofs_init_metabuf (& it .it .buf , it .it .sb );
636635 it .dentry = dentry ;
637636 it .buffer = buffer ;
638637 it .buffer_size = buffer_size ;
639638 it .buffer_ofs = 0 ;
640639
641- it .it .sb = dentry -> d_sb ;
642-
643640 ret = inline_listxattr (& it );
644641 if (ret >= 0 || ret == - ENOATTR )
645642 ret = shared_listxattr (& it );
0 commit comments