@@ -1831,9 +1831,9 @@ static vm_fault_t btrfs_page_mkwrite(struct vm_fault *vmf)
18311831{
18321832 struct page * page = vmf -> page ;
18331833 struct folio * folio = page_folio (page );
1834- struct inode * inode = file_inode (vmf -> vma -> vm_file );
1835- struct btrfs_fs_info * fs_info = inode_to_fs_info ( inode ) ;
1836- struct extent_io_tree * io_tree = & BTRFS_I ( inode ) -> io_tree ;
1834+ struct btrfs_inode * inode = BTRFS_I ( file_inode (vmf -> vma -> vm_file ) );
1835+ struct btrfs_fs_info * fs_info = inode -> root -> fs_info ;
1836+ struct extent_io_tree * io_tree = & inode -> io_tree ;
18371837 struct btrfs_ordered_extent * ordered ;
18381838 struct extent_state * cached_state = NULL ;
18391839 struct extent_changeset * data_reserved = NULL ;
@@ -1849,7 +1849,7 @@ static vm_fault_t btrfs_page_mkwrite(struct vm_fault *vmf)
18491849
18501850 reserved_space = fsize ;
18511851
1852- sb_start_pagefault (inode -> i_sb );
1852+ sb_start_pagefault (inode -> vfs_inode . i_sb );
18531853 page_start = folio_pos (folio );
18541854 page_end = page_start + folio_size (folio ) - 1 ;
18551855 end = page_end ;
@@ -1862,13 +1862,12 @@ static vm_fault_t btrfs_page_mkwrite(struct vm_fault *vmf)
18621862 * end up waiting indefinitely to get a lock on the page currently
18631863 * being processed by btrfs_page_mkwrite() function.
18641864 */
1865- ret = btrfs_check_data_free_space (BTRFS_I ( inode ) , & data_reserved ,
1866- page_start , reserved_space , false);
1865+ ret = btrfs_check_data_free_space (inode , & data_reserved , page_start ,
1866+ reserved_space , false);
18671867 if (ret < 0 ) {
18681868 size_t write_bytes = reserved_space ;
18691869
1870- if (btrfs_check_nocow_lock (BTRFS_I (inode ), page_start ,
1871- & write_bytes , false) <= 0 )
1870+ if (btrfs_check_nocow_lock (inode , page_start , & write_bytes , false) <= 0 )
18721871 goto out_noreserve ;
18731872
18741873 only_release_metadata = true;
@@ -1882,11 +1881,11 @@ static vm_fault_t btrfs_page_mkwrite(struct vm_fault *vmf)
18821881 if (write_bytes < reserved_space )
18831882 goto out_noreserve ;
18841883 }
1885- ret = btrfs_delalloc_reserve_metadata (BTRFS_I ( inode ) , reserved_space ,
1884+ ret = btrfs_delalloc_reserve_metadata (inode , reserved_space ,
18861885 reserved_space , false);
18871886 if (ret < 0 ) {
18881887 if (!only_release_metadata )
1889- btrfs_free_reserved_data_space (BTRFS_I ( inode ) , data_reserved ,
1888+ btrfs_free_reserved_data_space (inode , data_reserved ,
18901889 page_start , reserved_space );
18911890 goto out_noreserve ;
18921891 }
@@ -1895,11 +1894,11 @@ static vm_fault_t btrfs_page_mkwrite(struct vm_fault *vmf)
18951894 if (ret < 0 )
18961895 goto out ;
18971896again :
1898- down_read (& BTRFS_I ( inode ) -> i_mmap_lock );
1897+ down_read (& inode -> i_mmap_lock );
18991898 folio_lock (folio );
1900- size = i_size_read (inode );
1899+ size = i_size_read (& inode -> vfs_inode );
19011900
1902- if ((folio -> mapping != inode -> i_mapping ) ||
1901+ if ((folio -> mapping != inode -> vfs_inode . i_mapping ) ||
19031902 (page_start >= size )) {
19041903 /* Page got truncated out from underneath us. */
19051904 goto out_unlock ;
@@ -1917,11 +1916,11 @@ static vm_fault_t btrfs_page_mkwrite(struct vm_fault *vmf)
19171916 * We can't set the delalloc bits if there are pending ordered
19181917 * extents. Drop our locks and wait for them to finish.
19191918 */
1920- ordered = btrfs_lookup_ordered_range (BTRFS_I ( inode ) , page_start , fsize );
1919+ ordered = btrfs_lookup_ordered_range (inode , page_start , fsize );
19211920 if (ordered ) {
19221921 btrfs_unlock_extent (io_tree , page_start , page_end , & cached_state );
19231922 folio_unlock (folio );
1924- up_read (& BTRFS_I ( inode ) -> i_mmap_lock );
1923+ up_read (& inode -> i_mmap_lock );
19251924 btrfs_start_ordered_extent (ordered );
19261925 btrfs_put_ordered_extent (ordered );
19271926 goto again ;
@@ -1934,12 +1933,10 @@ static vm_fault_t btrfs_page_mkwrite(struct vm_fault *vmf)
19341933
19351934 end = page_start + reserved_space - 1 ;
19361935 if (only_release_metadata )
1937- btrfs_delalloc_release_metadata (BTRFS_I (inode ),
1938- to_free , true);
1936+ btrfs_delalloc_release_metadata (inode , to_free , true);
19391937 else
1940- btrfs_delalloc_release_space (BTRFS_I (inode ),
1941- data_reserved , end + 1 ,
1942- to_free , true);
1938+ btrfs_delalloc_release_space (inode , data_reserved ,
1939+ end + 1 , to_free , true);
19431940 }
19441941 }
19451942
@@ -1954,8 +1951,7 @@ static vm_fault_t btrfs_page_mkwrite(struct vm_fault *vmf)
19541951 EXTENT_DELALLOC | EXTENT_DO_ACCOUNTING |
19551952 EXTENT_DEFRAG , & cached_state );
19561953
1957- ret = btrfs_set_extent_delalloc (BTRFS_I (inode ), page_start , end , 0 ,
1958- & cached_state );
1954+ ret = btrfs_set_extent_delalloc (inode , page_start , end , 0 , & cached_state );
19591955 if (ret < 0 ) {
19601956 btrfs_unlock_extent (io_tree , page_start , page_end , & cached_state );
19611957 goto out_unlock ;
@@ -1974,38 +1970,38 @@ static vm_fault_t btrfs_page_mkwrite(struct vm_fault *vmf)
19741970 btrfs_folio_set_dirty (fs_info , folio , page_start , end + 1 - page_start );
19751971 btrfs_folio_set_uptodate (fs_info , folio , page_start , end + 1 - page_start );
19761972
1977- btrfs_set_inode_last_sub_trans (BTRFS_I ( inode ) );
1973+ btrfs_set_inode_last_sub_trans (inode );
19781974
19791975 if (only_release_metadata )
19801976 btrfs_set_extent_bit (io_tree , page_start , end , EXTENT_NORESERVE ,
19811977 & cached_state );
19821978
19831979 btrfs_unlock_extent (io_tree , page_start , page_end , & cached_state );
1984- up_read (& BTRFS_I ( inode ) -> i_mmap_lock );
1980+ up_read (& inode -> i_mmap_lock );
19851981
1986- btrfs_delalloc_release_extents (BTRFS_I ( inode ) , fsize );
1982+ btrfs_delalloc_release_extents (inode , fsize );
19871983 if (only_release_metadata )
1988- btrfs_check_nocow_unlock (BTRFS_I ( inode ) );
1989- sb_end_pagefault (inode -> i_sb );
1984+ btrfs_check_nocow_unlock (inode );
1985+ sb_end_pagefault (inode -> vfs_inode . i_sb );
19901986 extent_changeset_free (data_reserved );
19911987 return VM_FAULT_LOCKED ;
19921988
19931989out_unlock :
19941990 folio_unlock (folio );
1995- up_read (& BTRFS_I ( inode ) -> i_mmap_lock );
1991+ up_read (& inode -> i_mmap_lock );
19961992out :
1997- btrfs_delalloc_release_extents (BTRFS_I ( inode ) , fsize );
1993+ btrfs_delalloc_release_extents (inode , fsize );
19981994 if (only_release_metadata )
1999- btrfs_delalloc_release_metadata (BTRFS_I ( inode ) , reserved_space , true);
1995+ btrfs_delalloc_release_metadata (inode , reserved_space , true);
20001996 else
2001- btrfs_delalloc_release_space (BTRFS_I ( inode ) , data_reserved ,
2002- page_start , reserved_space , true);
1997+ btrfs_delalloc_release_space (inode , data_reserved , page_start ,
1998+ reserved_space , true);
20031999 extent_changeset_free (data_reserved );
20042000out_noreserve :
20052001 if (only_release_metadata )
2006- btrfs_check_nocow_unlock (BTRFS_I ( inode ) );
2002+ btrfs_check_nocow_unlock (inode );
20072003
2008- sb_end_pagefault (inode -> i_sb );
2004+ sb_end_pagefault (inode -> vfs_inode . i_sb );
20092005
20102006 if (ret < 0 )
20112007 return vmf_error (ret );
0 commit comments