@@ -1831,9 +1831,9 @@ static vm_fault_t btrfs_page_mkwrite(struct vm_fault *vmf)
1831
1831
{
1832
1832
struct page * page = vmf -> page ;
1833
1833
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 ;
1837
1837
struct btrfs_ordered_extent * ordered ;
1838
1838
struct extent_state * cached_state = NULL ;
1839
1839
struct extent_changeset * data_reserved = NULL ;
@@ -1849,7 +1849,7 @@ static vm_fault_t btrfs_page_mkwrite(struct vm_fault *vmf)
1849
1849
1850
1850
reserved_space = fsize ;
1851
1851
1852
- sb_start_pagefault (inode -> i_sb );
1852
+ sb_start_pagefault (inode -> vfs_inode . i_sb );
1853
1853
page_start = folio_pos (folio );
1854
1854
page_end = page_start + folio_size (folio ) - 1 ;
1855
1855
end = page_end ;
@@ -1862,13 +1862,12 @@ static vm_fault_t btrfs_page_mkwrite(struct vm_fault *vmf)
1862
1862
* end up waiting indefinitely to get a lock on the page currently
1863
1863
* being processed by btrfs_page_mkwrite() function.
1864
1864
*/
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);
1867
1867
if (ret < 0 ) {
1868
1868
size_t write_bytes = reserved_space ;
1869
1869
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 )
1872
1871
goto out_noreserve ;
1873
1872
1874
1873
only_release_metadata = true;
@@ -1882,11 +1881,11 @@ static vm_fault_t btrfs_page_mkwrite(struct vm_fault *vmf)
1882
1881
if (write_bytes < reserved_space )
1883
1882
goto out_noreserve ;
1884
1883
}
1885
- ret = btrfs_delalloc_reserve_metadata (BTRFS_I ( inode ) , reserved_space ,
1884
+ ret = btrfs_delalloc_reserve_metadata (inode , reserved_space ,
1886
1885
reserved_space , false);
1887
1886
if (ret < 0 ) {
1888
1887
if (!only_release_metadata )
1889
- btrfs_free_reserved_data_space (BTRFS_I ( inode ) , data_reserved ,
1888
+ btrfs_free_reserved_data_space (inode , data_reserved ,
1890
1889
page_start , reserved_space );
1891
1890
goto out_noreserve ;
1892
1891
}
@@ -1895,11 +1894,11 @@ static vm_fault_t btrfs_page_mkwrite(struct vm_fault *vmf)
1895
1894
if (ret < 0 )
1896
1895
goto out ;
1897
1896
again :
1898
- down_read (& BTRFS_I ( inode ) -> i_mmap_lock );
1897
+ down_read (& inode -> i_mmap_lock );
1899
1898
folio_lock (folio );
1900
- size = i_size_read (inode );
1899
+ size = i_size_read (& inode -> vfs_inode );
1901
1900
1902
- if ((folio -> mapping != inode -> i_mapping ) ||
1901
+ if ((folio -> mapping != inode -> vfs_inode . i_mapping ) ||
1903
1902
(page_start >= size )) {
1904
1903
/* Page got truncated out from underneath us. */
1905
1904
goto out_unlock ;
@@ -1917,11 +1916,11 @@ static vm_fault_t btrfs_page_mkwrite(struct vm_fault *vmf)
1917
1916
* We can't set the delalloc bits if there are pending ordered
1918
1917
* extents. Drop our locks and wait for them to finish.
1919
1918
*/
1920
- ordered = btrfs_lookup_ordered_range (BTRFS_I ( inode ) , page_start , fsize );
1919
+ ordered = btrfs_lookup_ordered_range (inode , page_start , fsize );
1921
1920
if (ordered ) {
1922
1921
btrfs_unlock_extent (io_tree , page_start , page_end , & cached_state );
1923
1922
folio_unlock (folio );
1924
- up_read (& BTRFS_I ( inode ) -> i_mmap_lock );
1923
+ up_read (& inode -> i_mmap_lock );
1925
1924
btrfs_start_ordered_extent (ordered );
1926
1925
btrfs_put_ordered_extent (ordered );
1927
1926
goto again ;
@@ -1934,12 +1933,10 @@ static vm_fault_t btrfs_page_mkwrite(struct vm_fault *vmf)
1934
1933
1935
1934
end = page_start + reserved_space - 1 ;
1936
1935
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);
1939
1937
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);
1943
1940
}
1944
1941
}
1945
1942
@@ -1954,8 +1951,7 @@ static vm_fault_t btrfs_page_mkwrite(struct vm_fault *vmf)
1954
1951
EXTENT_DELALLOC | EXTENT_DO_ACCOUNTING |
1955
1952
EXTENT_DEFRAG , & cached_state );
1956
1953
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 );
1959
1955
if (ret < 0 ) {
1960
1956
btrfs_unlock_extent (io_tree , page_start , page_end , & cached_state );
1961
1957
goto out_unlock ;
@@ -1974,38 +1970,38 @@ static vm_fault_t btrfs_page_mkwrite(struct vm_fault *vmf)
1974
1970
btrfs_folio_set_dirty (fs_info , folio , page_start , end + 1 - page_start );
1975
1971
btrfs_folio_set_uptodate (fs_info , folio , page_start , end + 1 - page_start );
1976
1972
1977
- btrfs_set_inode_last_sub_trans (BTRFS_I ( inode ) );
1973
+ btrfs_set_inode_last_sub_trans (inode );
1978
1974
1979
1975
if (only_release_metadata )
1980
1976
btrfs_set_extent_bit (io_tree , page_start , end , EXTENT_NORESERVE ,
1981
1977
& cached_state );
1982
1978
1983
1979
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 );
1985
1981
1986
- btrfs_delalloc_release_extents (BTRFS_I ( inode ) , fsize );
1982
+ btrfs_delalloc_release_extents (inode , fsize );
1987
1983
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 );
1990
1986
extent_changeset_free (data_reserved );
1991
1987
return VM_FAULT_LOCKED ;
1992
1988
1993
1989
out_unlock :
1994
1990
folio_unlock (folio );
1995
- up_read (& BTRFS_I ( inode ) -> i_mmap_lock );
1991
+ up_read (& inode -> i_mmap_lock );
1996
1992
out :
1997
- btrfs_delalloc_release_extents (BTRFS_I ( inode ) , fsize );
1993
+ btrfs_delalloc_release_extents (inode , fsize );
1998
1994
if (only_release_metadata )
1999
- btrfs_delalloc_release_metadata (BTRFS_I ( inode ) , reserved_space , true);
1995
+ btrfs_delalloc_release_metadata (inode , reserved_space , true);
2000
1996
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);
2003
1999
extent_changeset_free (data_reserved );
2004
2000
out_noreserve :
2005
2001
if (only_release_metadata )
2006
- btrfs_check_nocow_unlock (BTRFS_I ( inode ) );
2002
+ btrfs_check_nocow_unlock (inode );
2007
2003
2008
- sb_end_pagefault (inode -> i_sb );
2004
+ sb_end_pagefault (inode -> vfs_inode . i_sb );
2009
2005
2010
2006
if (ret < 0 )
2011
2007
return vmf_error (ret );
0 commit comments