@@ -1621,20 +1621,19 @@ static int iomap_submit_ioend(struct iomap_writepage_ctx *wpc, int error)
16211621}
16221622
16231623static struct iomap_ioend * iomap_alloc_ioend (struct iomap_writepage_ctx * wpc ,
1624- struct writeback_control * wbc , struct inode * inode , loff_t pos ,
1625- u16 ioend_flags )
1624+ loff_t pos , u16 ioend_flags )
16261625{
16271626 struct bio * bio ;
16281627
16291628 bio = bio_alloc_bioset (wpc -> iomap .bdev , BIO_MAX_VECS ,
1630- REQ_OP_WRITE | wbc_to_write_flags (wbc ),
1629+ REQ_OP_WRITE | wbc_to_write_flags (wpc -> wbc ),
16311630 GFP_NOFS , & iomap_ioend_bioset );
16321631 bio -> bi_iter .bi_sector = iomap_sector (& wpc -> iomap , pos );
16331632 bio -> bi_end_io = iomap_writepage_end_bio ;
1634- bio -> bi_write_hint = inode -> i_write_hint ;
1635- wbc_init_bio (wbc , bio );
1633+ bio -> bi_write_hint = wpc -> inode -> i_write_hint ;
1634+ wbc_init_bio (wpc -> wbc , bio );
16361635 wpc -> nr_folios = 0 ;
1637- return iomap_init_ioend (inode , bio , pos , ioend_flags );
1636+ return iomap_init_ioend (wpc -> inode , bio , pos , ioend_flags );
16381637}
16391638
16401639static bool iomap_can_add_to_ioend (struct iomap_writepage_ctx * wpc , loff_t pos ,
@@ -1673,9 +1672,7 @@ static bool iomap_can_add_to_ioend(struct iomap_writepage_ctx *wpc, loff_t pos,
16731672 * writepage context that the caller will need to submit.
16741673 */
16751674static int iomap_add_to_ioend (struct iomap_writepage_ctx * wpc ,
1676- struct writeback_control * wbc , struct folio * folio ,
1677- struct inode * inode , loff_t pos , loff_t end_pos ,
1678- unsigned len )
1675+ struct folio * folio , loff_t pos , loff_t end_pos , unsigned len )
16791676{
16801677 struct iomap_folio_state * ifs = folio -> private ;
16811678 size_t poff = offset_in_folio (folio , pos );
@@ -1696,8 +1693,7 @@ static int iomap_add_to_ioend(struct iomap_writepage_ctx *wpc,
16961693 error = iomap_submit_ioend (wpc , 0 );
16971694 if (error )
16981695 return error ;
1699- wpc -> ioend = iomap_alloc_ioend (wpc , wbc , inode , pos ,
1700- ioend_flags );
1696+ wpc -> ioend = iomap_alloc_ioend (wpc , pos , ioend_flags );
17011697 }
17021698
17031699 if (!bio_add_folio (& wpc -> ioend -> io_bio , folio , len , poff ))
@@ -1751,24 +1747,24 @@ static int iomap_add_to_ioend(struct iomap_writepage_ctx *wpc,
17511747 if (wpc -> ioend -> io_offset + wpc -> ioend -> io_size > end_pos )
17521748 wpc -> ioend -> io_size = end_pos - wpc -> ioend -> io_offset ;
17531749
1754- wbc_account_cgroup_owner (wbc , folio , len );
1750+ wbc_account_cgroup_owner (wpc -> wbc , folio , len );
17551751 return 0 ;
17561752}
17571753
17581754static int iomap_writepage_map_blocks (struct iomap_writepage_ctx * wpc ,
1759- struct writeback_control * wbc , struct folio * folio ,
1760- struct inode * inode , u64 pos , u64 end_pos ,
1761- unsigned dirty_len , unsigned * count )
1755+ struct folio * folio , u64 pos , u64 end_pos , unsigned dirty_len ,
1756+ unsigned * count )
17621757{
17631758 int error ;
17641759
17651760 do {
17661761 unsigned map_len ;
17671762
1768- error = wpc -> ops -> map_blocks (wpc , inode , pos , dirty_len );
1763+ error = wpc -> ops -> map_blocks (wpc , wpc -> inode , pos , dirty_len );
17691764 if (error )
17701765 break ;
1771- trace_iomap_writepage_map (inode , pos , dirty_len , & wpc -> iomap );
1766+ trace_iomap_writepage_map (wpc -> inode , pos , dirty_len ,
1767+ & wpc -> iomap );
17721768
17731769 map_len = min_t (u64 , dirty_len ,
17741770 wpc -> iomap .offset + wpc -> iomap .length - pos );
@@ -1782,8 +1778,8 @@ static int iomap_writepage_map_blocks(struct iomap_writepage_ctx *wpc,
17821778 case IOMAP_HOLE :
17831779 break ;
17841780 default :
1785- error = iomap_add_to_ioend (wpc , wbc , folio , inode , pos ,
1786- end_pos , map_len );
1781+ error = iomap_add_to_ioend (wpc , folio , pos , end_pos ,
1782+ map_len );
17871783 if (!error )
17881784 (* count )++ ;
17891785 break ;
@@ -1865,10 +1861,10 @@ static bool iomap_writepage_handle_eof(struct folio *folio, struct inode *inode,
18651861}
18661862
18671863static int iomap_writepage_map (struct iomap_writepage_ctx * wpc ,
1868- struct writeback_control * wbc , struct folio * folio )
1864+ struct folio * folio )
18691865{
18701866 struct iomap_folio_state * ifs = folio -> private ;
1871- struct inode * inode = folio -> mapping -> host ;
1867+ struct inode * inode = wpc -> inode ;
18721868 u64 pos = folio_pos (folio );
18731869 u64 end_pos = pos + folio_size (folio );
18741870 u64 end_aligned = 0 ;
@@ -1915,8 +1911,8 @@ static int iomap_writepage_map(struct iomap_writepage_ctx *wpc,
19151911 */
19161912 end_aligned = round_up (end_pos , i_blocksize (inode ));
19171913 while ((rlen = iomap_find_dirty_range (folio , & pos , end_aligned ))) {
1918- error = iomap_writepage_map_blocks (wpc , wbc , folio , inode ,
1919- pos , end_pos , rlen , & count );
1914+ error = iomap_writepage_map_blocks (wpc , folio , pos , end_pos ,
1915+ rlen , & count );
19201916 if (error )
19211917 break ;
19221918 pos += rlen ;
@@ -1952,10 +1948,9 @@ static int iomap_writepage_map(struct iomap_writepage_ctx *wpc,
19521948}
19531949
19541950int
1955- iomap_writepages (struct address_space * mapping , struct writeback_control * wbc ,
1956- struct iomap_writepage_ctx * wpc ,
1957- const struct iomap_writeback_ops * ops )
1951+ iomap_writepages (struct iomap_writepage_ctx * wpc )
19581952{
1953+ struct address_space * mapping = wpc -> inode -> i_mapping ;
19591954 struct folio * folio = NULL ;
19601955 int error ;
19611956
@@ -1967,9 +1962,8 @@ iomap_writepages(struct address_space *mapping, struct writeback_control *wbc,
19671962 PF_MEMALLOC ))
19681963 return - EIO ;
19691964
1970- wpc -> ops = ops ;
1971- while ((folio = writeback_iter (mapping , wbc , folio , & error )))
1972- error = iomap_writepage_map (wpc , wbc , folio );
1965+ while ((folio = writeback_iter (mapping , wpc -> wbc , folio , & error )))
1966+ error = iomap_writepage_map (wpc , folio );
19731967 return iomap_submit_ioend (wpc , error );
19741968}
19751969EXPORT_SYMBOL_GPL (iomap_writepages );
0 commit comments