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);