@@ -2040,26 +2040,26 @@ static void fuse_writepage_add_to_bucket(struct fuse_conn *fc,
2040
2040
rcu_read_unlock ();
2041
2041
}
2042
2042
2043
- static int fuse_writepage_locked (struct page * page )
2043
+ static int fuse_writepage_locked (struct folio * folio )
2044
2044
{
2045
- struct address_space * mapping = page -> mapping ;
2045
+ struct address_space * mapping = folio -> mapping ;
2046
2046
struct inode * inode = mapping -> host ;
2047
2047
struct fuse_conn * fc = get_fuse_conn (inode );
2048
2048
struct fuse_inode * fi = get_fuse_inode (inode );
2049
2049
struct fuse_writepage_args * wpa ;
2050
2050
struct fuse_args_pages * ap ;
2051
- struct page * tmp_page ;
2051
+ struct folio * tmp_folio ;
2052
2052
int error = - ENOMEM ;
2053
2053
2054
- set_page_writeback ( page );
2054
+ folio_start_writeback ( folio );
2055
2055
2056
2056
wpa = fuse_writepage_args_alloc ();
2057
2057
if (!wpa )
2058
2058
goto err ;
2059
2059
ap = & wpa -> ia .ap ;
2060
2060
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 )
2063
2063
goto err_free ;
2064
2064
2065
2065
error = - EIO ;
@@ -2068,39 +2068,39 @@ static int fuse_writepage_locked(struct page *page)
2068
2068
goto err_nofile ;
2069
2069
2070
2070
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 );
2072
2072
2073
- copy_highpage ( tmp_page , page );
2073
+ folio_copy ( tmp_folio , folio );
2074
2074
wpa -> ia .write .in .write_flags |= FUSE_WRITE_CACHE ;
2075
2075
wpa -> next = NULL ;
2076
2076
ap -> args .in_pages = true;
2077
2077
ap -> num_pages = 1 ;
2078
- ap -> pages [0 ] = tmp_page ;
2078
+ ap -> pages [0 ] = & tmp_folio -> page ;
2079
2079
ap -> descs [0 ].offset = 0 ;
2080
2080
ap -> descs [0 ].length = PAGE_SIZE ;
2081
2081
ap -> args .end = fuse_writepage_end ;
2082
2082
wpa -> inode = inode ;
2083
2083
2084
2084
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 );
2086
2086
2087
2087
spin_lock (& fi -> lock );
2088
2088
tree_insert (& fi -> writepages , wpa );
2089
2089
list_add_tail (& wpa -> queue_entry , & fi -> queued_writes );
2090
2090
fuse_flush_writepages (inode );
2091
2091
spin_unlock (& fi -> lock );
2092
2092
2093
- end_page_writeback ( page );
2093
+ folio_end_writeback ( folio );
2094
2094
2095
2095
return 0 ;
2096
2096
2097
2097
err_nofile :
2098
- __free_page ( tmp_page );
2098
+ folio_put ( tmp_folio );
2099
2099
err_free :
2100
2100
kfree (wpa );
2101
2101
err :
2102
- mapping_set_error (page -> mapping , error );
2103
- end_page_writeback ( page );
2102
+ mapping_set_error (folio -> mapping , error );
2103
+ folio_end_writeback ( folio );
2104
2104
return error ;
2105
2105
}
2106
2106
@@ -2466,7 +2466,7 @@ static int fuse_launder_folio(struct folio *folio)
2466
2466
2467
2467
/* Serialize with pending writeback for the same page */
2468
2468
fuse_wait_on_page_writeback (inode , folio -> index );
2469
- err = fuse_writepage_locked (& folio -> page );
2469
+ err = fuse_writepage_locked (folio );
2470
2470
if (!err )
2471
2471
fuse_wait_on_page_writeback (inode , folio -> index );
2472
2472
}
0 commit comments