Skip to content

Commit 184b6eb

Browse files
josefbacikMiklos Szeredi
authored andcommitted
fuse: convert fuse_page_mkwrite to use folios
Convert this to grab the folio directly, and update all the helpers to use the folio related functions. Reviewed-by: Joanne Koong <[email protected]> Signed-off-by: Josef Bacik <[email protected]> Signed-off-by: Miklos Szeredi <[email protected]>
1 parent 9bafbe7 commit 184b6eb

File tree

1 file changed

+15
-5
lines changed

1 file changed

+15
-5
lines changed

fs/fuse/file.c

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -483,6 +483,16 @@ static void fuse_wait_on_page_writeback(struct inode *inode, pgoff_t index)
483483
wait_event(fi->page_waitq, !fuse_page_is_writeback(inode, index));
484484
}
485485

486+
static void fuse_wait_on_folio_writeback(struct inode *inode,
487+
struct folio *folio)
488+
{
489+
struct fuse_inode *fi = get_fuse_inode(inode);
490+
pgoff_t last = folio_next_index(folio) - 1;
491+
492+
wait_event(fi->page_waitq,
493+
!fuse_range_is_writeback(inode, folio_index(folio), last));
494+
}
495+
486496
/*
487497
* Wait for all pending writepages on the inode to finish.
488498
*
@@ -2558,17 +2568,17 @@ static void fuse_vma_close(struct vm_area_struct *vma)
25582568
*/
25592569
static vm_fault_t fuse_page_mkwrite(struct vm_fault *vmf)
25602570
{
2561-
struct page *page = vmf->page;
2571+
struct folio *folio = page_folio(vmf->page);
25622572
struct inode *inode = file_inode(vmf->vma->vm_file);
25632573

25642574
file_update_time(vmf->vma->vm_file);
2565-
lock_page(page);
2566-
if (page->mapping != inode->i_mapping) {
2567-
unlock_page(page);
2575+
folio_lock(folio);
2576+
if (folio->mapping != inode->i_mapping) {
2577+
folio_unlock(folio);
25682578
return VM_FAULT_NOPAGE;
25692579
}
25702580

2571-
fuse_wait_on_page_writeback(inode, page->index);
2581+
fuse_wait_on_folio_writeback(inode, folio);
25722582
return VM_FAULT_LOCKED;
25732583
}
25742584

0 commit comments

Comments
 (0)