On Thu, Nov 19, 2020 at 03:13:16PM +0000, Matthew Wilcox wrote: > On Wed, Nov 18, 2020 at 09:47:57AM +0100, Christoph Hellwig wrote: > > @@ -2887,13 +2887,13 @@ EXPORT_SYMBOL(filemap_map_pages); > > vm_fault_t filemap_page_mkwrite(struct vm_fault *vmf) > > { > > struct page *page = vmf->page; > > - struct inode *inode = file_inode(vmf->vma->vm_file); > > + struct inode *inode = vmf->vma->vm_file->f_mapping->host; > > vm_fault_t ret = VM_FAULT_LOCKED; > > > > sb_start_pagefault(inode->i_sb); > > file_update_time(vmf->vma->vm_file); > > lock_page(page); > > - if (page->mapping != inode->i_mapping) { > > + if (page->mapping != vmf->vma->vm_file->f_mapping) { > > Bit messy. I'd do: > > struct address_space *mapping = vmf->vma->vm_file->f_mapping; > > sb_start_pagefault(mapping->host->i_sb); > > if (page->mapping != mapping) > > sb_end_pagefault(mapping->host->i_sb); Fine with me.