@@ -2040,26 +2040,26 @@ static void fuse_writepage_add_to_bucket(struct fuse_conn *fc,
20402040 rcu_read_unlock ();
20412041}
20422042
2043- static int fuse_writepage_locked (struct page * page )
2043+ static int fuse_writepage_locked (struct folio * folio )
20442044{
2045- struct address_space * mapping = page -> mapping ;
2045+ struct address_space * mapping = folio -> mapping ;
20462046 struct inode * inode = mapping -> host ;
20472047 struct fuse_conn * fc = get_fuse_conn (inode );
20482048 struct fuse_inode * fi = get_fuse_inode (inode );
20492049 struct fuse_writepage_args * wpa ;
20502050 struct fuse_args_pages * ap ;
2051- struct page * tmp_page ;
2051+ struct folio * tmp_folio ;
20522052 int error = - ENOMEM ;
20532053
2054- set_page_writeback ( page );
2054+ folio_start_writeback ( folio );
20552055
20562056 wpa = fuse_writepage_args_alloc ();
20572057 if (!wpa )
20582058 goto err ;
20592059 ap = & wpa -> ia .ap ;
20602060
2061- tmp_page = alloc_page (GFP_NOFS | __GFP_HIGHMEM );
2062- if (!tmp_page )
2061+ tmp_folio = folio_alloc (GFP_NOFS | __GFP_HIGHMEM , 0 );
2062+ if (!tmp_folio )
20632063 goto err_free ;
20642064
20652065 error = - EIO ;
@@ -2068,39 +2068,39 @@ static int fuse_writepage_locked(struct page *page)
20682068 goto err_nofile ;
20692069
20702070 fuse_writepage_add_to_bucket (fc , wpa );
2071- fuse_write_args_fill (& wpa -> ia , wpa -> ia .ff , page_offset ( page ), 0 );
2071+ fuse_write_args_fill (& wpa -> ia , wpa -> ia .ff , folio_pos ( folio ), 0 );
20722072
2073- copy_highpage ( tmp_page , page );
2073+ folio_copy ( tmp_folio , folio );
20742074 wpa -> ia .write .in .write_flags |= FUSE_WRITE_CACHE ;
20752075 wpa -> next = NULL ;
20762076 ap -> args .in_pages = true;
20772077 ap -> num_pages = 1 ;
2078- ap -> pages [0 ] = tmp_page ;
2078+ ap -> pages [0 ] = & tmp_folio -> page ;
20792079 ap -> descs [0 ].offset = 0 ;
20802080 ap -> descs [0 ].length = PAGE_SIZE ;
20812081 ap -> args .end = fuse_writepage_end ;
20822082 wpa -> inode = inode ;
20832083
20842084 inc_wb_stat (& inode_to_bdi (inode )-> wb , WB_WRITEBACK );
2085- inc_node_page_state ( tmp_page , NR_WRITEBACK_TEMP );
2085+ node_stat_add_folio ( tmp_folio , NR_WRITEBACK_TEMP );
20862086
20872087 spin_lock (& fi -> lock );
20882088 tree_insert (& fi -> writepages , wpa );
20892089 list_add_tail (& wpa -> queue_entry , & fi -> queued_writes );
20902090 fuse_flush_writepages (inode );
20912091 spin_unlock (& fi -> lock );
20922092
2093- end_page_writeback ( page );
2093+ folio_end_writeback ( folio );
20942094
20952095 return 0 ;
20962096
20972097err_nofile :
2098- __free_page ( tmp_page );
2098+ folio_put ( tmp_folio );
20992099err_free :
21002100 kfree (wpa );
21012101err :
2102- mapping_set_error (page -> mapping , error );
2103- end_page_writeback ( page );
2102+ mapping_set_error (folio -> mapping , error );
2103+ folio_end_writeback ( folio );
21042104 return error ;
21052105}
21062106
@@ -2466,7 +2466,7 @@ static int fuse_launder_folio(struct folio *folio)
24662466
24672467 /* Serialize with pending writeback for the same page */
24682468 fuse_wait_on_page_writeback (inode , folio -> index );
2469- err = fuse_writepage_locked (& folio -> page );
2469+ err = fuse_writepage_locked (folio );
24702470 if (!err )
24712471 fuse_wait_on_page_writeback (inode , folio -> index );
24722472 }
0 commit comments