@@ -1782,6 +1782,7 @@ static vm_fault_t btrfs_page_mkwrite(struct vm_fault *vmf)
17821782 struct extent_changeset * data_reserved = NULL ;
17831783 unsigned long zero_start ;
17841784 loff_t size ;
1785+ size_t fsize = folio_size (folio );
17851786 vm_fault_t ret ;
17861787 int ret2 ;
17871788 int reserved = 0 ;
@@ -1792,7 +1793,7 @@ static vm_fault_t btrfs_page_mkwrite(struct vm_fault *vmf)
17921793
17931794 ASSERT (folio_order (folio ) == 0 );
17941795
1795- reserved_space = PAGE_SIZE ;
1796+ reserved_space = fsize ;
17961797
17971798 sb_start_pagefault (inode -> i_sb );
17981799 page_start = folio_pos (folio );
@@ -1846,7 +1847,7 @@ static vm_fault_t btrfs_page_mkwrite(struct vm_fault *vmf)
18461847 * We can't set the delalloc bits if there are pending ordered
18471848 * extents. Drop our locks and wait for them to finish.
18481849 */
1849- ordered = btrfs_lookup_ordered_range (BTRFS_I (inode ), page_start , PAGE_SIZE );
1850+ ordered = btrfs_lookup_ordered_range (BTRFS_I (inode ), page_start , fsize );
18501851 if (ordered ) {
18511852 unlock_extent (io_tree , page_start , page_end , & cached_state );
18521853 folio_unlock (folio );
@@ -1858,11 +1859,11 @@ static vm_fault_t btrfs_page_mkwrite(struct vm_fault *vmf)
18581859
18591860 if (folio -> index == ((size - 1 ) >> PAGE_SHIFT )) {
18601861 reserved_space = round_up (size - page_start , fs_info -> sectorsize );
1861- if (reserved_space < PAGE_SIZE ) {
1862+ if (reserved_space < fsize ) {
18621863 end = page_start + reserved_space - 1 ;
18631864 btrfs_delalloc_release_space (BTRFS_I (inode ),
18641865 data_reserved , page_start ,
1865- PAGE_SIZE - reserved_space , true);
1866+ fsize - reserved_space , true);
18661867 }
18671868 }
18681869
@@ -1889,12 +1890,12 @@ static vm_fault_t btrfs_page_mkwrite(struct vm_fault *vmf)
18891890 if (page_start + folio_size (folio ) > size )
18901891 zero_start = offset_in_folio (folio , size );
18911892 else
1892- zero_start = PAGE_SIZE ;
1893+ zero_start = fsize ;
18931894
1894- if (zero_start != PAGE_SIZE )
1895+ if (zero_start != fsize )
18951896 folio_zero_range (folio , zero_start , folio_size (folio ) - zero_start );
18961897
1897- btrfs_folio_clear_checked (fs_info , folio , page_start , PAGE_SIZE );
1898+ btrfs_folio_clear_checked (fs_info , folio , page_start , fsize );
18981899 btrfs_folio_set_dirty (fs_info , folio , page_start , end + 1 - page_start );
18991900 btrfs_folio_set_uptodate (fs_info , folio , page_start , end + 1 - page_start );
19001901
@@ -1903,7 +1904,7 @@ static vm_fault_t btrfs_page_mkwrite(struct vm_fault *vmf)
19031904 unlock_extent (io_tree , page_start , page_end , & cached_state );
19041905 up_read (& BTRFS_I (inode )-> i_mmap_lock );
19051906
1906- btrfs_delalloc_release_extents (BTRFS_I (inode ), PAGE_SIZE );
1907+ btrfs_delalloc_release_extents (BTRFS_I (inode ), fsize );
19071908 sb_end_pagefault (inode -> i_sb );
19081909 extent_changeset_free (data_reserved );
19091910 return VM_FAULT_LOCKED ;
@@ -1912,7 +1913,7 @@ static vm_fault_t btrfs_page_mkwrite(struct vm_fault *vmf)
19121913 folio_unlock (folio );
19131914 up_read (& BTRFS_I (inode )-> i_mmap_lock );
19141915out :
1915- btrfs_delalloc_release_extents (BTRFS_I (inode ), PAGE_SIZE );
1916+ btrfs_delalloc_release_extents (BTRFS_I (inode ), fsize );
19161917 btrfs_delalloc_release_space (BTRFS_I (inode ), data_reserved , page_start ,
19171918 reserved_space , (ret != 0 ));
19181919out_noreserve :
0 commit comments