@@ -1712,8 +1712,7 @@ static int ext4_insert_delayed_block(struct inode *inode, ext4_lblk_t lblk)
1712
1712
* time. This function looks up the requested blocks and sets the
1713
1713
* buffer delay bit under the protection of i_data_sem.
1714
1714
*/
1715
- static int ext4_da_map_blocks (struct inode * inode , sector_t iblock ,
1716
- struct ext4_map_blocks * map ,
1715
+ static int ext4_da_map_blocks (struct inode * inode , struct ext4_map_blocks * map ,
1717
1716
struct buffer_head * bh )
1718
1717
{
1719
1718
struct extent_status es ;
@@ -1733,8 +1732,8 @@ static int ext4_da_map_blocks(struct inode *inode, sector_t iblock,
1733
1732
(unsigned long ) map -> m_lblk );
1734
1733
1735
1734
/* Lookup extent status tree firstly */
1736
- if (ext4_es_lookup_extent (inode , iblock , NULL , & es )) {
1737
- retval = es .es_len - (iblock - es .es_lblk );
1735
+ if (ext4_es_lookup_extent (inode , map -> m_lblk , NULL , & es )) {
1736
+ retval = es .es_len - (map -> m_lblk - es .es_lblk );
1738
1737
if (retval > map -> m_len )
1739
1738
retval = map -> m_len ;
1740
1739
map -> m_len = retval ;
@@ -1754,7 +1753,7 @@ static int ext4_da_map_blocks(struct inode *inode, sector_t iblock,
1754
1753
return 0 ;
1755
1754
}
1756
1755
1757
- map -> m_pblk = ext4_es_pblock (& es ) + iblock - es .es_lblk ;
1756
+ map -> m_pblk = ext4_es_pblock (& es ) + map -> m_lblk - es .es_lblk ;
1758
1757
if (ext4_es_is_written (& es ))
1759
1758
map -> m_flags |= EXT4_MAP_MAPPED ;
1760
1759
else if (ext4_es_is_unwritten (& es ))
@@ -1790,8 +1789,8 @@ static int ext4_da_map_blocks(struct inode *inode, sector_t iblock,
1790
1789
* is held in write mode, before inserting a new da entry in
1791
1790
* the extent status tree.
1792
1791
*/
1793
- if (ext4_es_lookup_extent (inode , iblock , NULL , & es )) {
1794
- retval = es .es_len - (iblock - es .es_lblk );
1792
+ if (ext4_es_lookup_extent (inode , map -> m_lblk , NULL , & es )) {
1793
+ retval = es .es_len - (map -> m_lblk - es .es_lblk );
1795
1794
if (retval > map -> m_len )
1796
1795
retval = map -> m_len ;
1797
1796
map -> m_len = retval ;
@@ -1848,7 +1847,7 @@ int ext4_da_get_block_prep(struct inode *inode, sector_t iblock,
1848
1847
* preallocated blocks are unmapped but should treated
1849
1848
* the same as allocated blocks.
1850
1849
*/
1851
- ret = ext4_da_map_blocks (inode , iblock , & map , bh );
1850
+ ret = ext4_da_map_blocks (inode , & map , bh );
1852
1851
if (ret <= 0 )
1853
1852
return ret ;
1854
1853
0 commit comments