ntfs3: Convert ntfs_write_begin to use a folio
Retrieve a folio from the page cache instead of a precise page. This function is now large folio safe, but its called function is not. Signed-off-by: Matthew Wilcox (Oracle) <willy@infradead.org> Signed-off-by: Konstantin Komarov <almaz.alexandrovich@paragon-software.com>
This commit is contained in:
committed by
Konstantin Komarov
parent
f27a8e2d3d
commit
00c91073a3
@@ -913,24 +913,25 @@ int ntfs_write_begin(struct file *file, struct address_space *mapping,
|
||||
|
||||
*pagep = NULL;
|
||||
if (is_resident(ni)) {
|
||||
struct page *page =
|
||||
grab_cache_page_write_begin(mapping, pos >> PAGE_SHIFT);
|
||||
struct folio *folio = __filemap_get_folio(mapping,
|
||||
pos >> PAGE_SHIFT, FGP_WRITEBEGIN,
|
||||
mapping_gfp_mask(mapping));
|
||||
|
||||
if (!page) {
|
||||
err = -ENOMEM;
|
||||
if (IS_ERR(folio)) {
|
||||
err = PTR_ERR(folio);
|
||||
goto out;
|
||||
}
|
||||
|
||||
ni_lock(ni);
|
||||
err = attr_data_read_resident(ni, page);
|
||||
err = attr_data_read_resident(ni, &folio->page);
|
||||
ni_unlock(ni);
|
||||
|
||||
if (!err) {
|
||||
*pagep = page;
|
||||
*pagep = &folio->page;
|
||||
goto out;
|
||||
}
|
||||
unlock_page(page);
|
||||
put_page(page);
|
||||
folio_unlock(folio);
|
||||
folio_put(folio);
|
||||
|
||||
if (err != E_NTFS_NONRESIDENT)
|
||||
goto out;
|
||||
|
||||
Reference in New Issue
Block a user