Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge tag 'tags/ext4_for_linus_stable' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4

Pull ext2/4 DAX fix from Ted Ts'o:
"This fixes a file system corruption bug with DAX"

* tag 'tags/ext4_for_linus_stable' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4:
ext2, ext4: fix issue with missing journal entry in ext4_dax_mkwrite()

+3 -35
+1 -18
fs/ext2/file.c
··· 80 80 return ret; 81 81 } 82 82 83 - static int ext2_dax_mkwrite(struct vm_area_struct *vma, struct vm_fault *vmf) 84 - { 85 - struct inode *inode = file_inode(vma->vm_file); 86 - struct ext2_inode_info *ei = EXT2_I(inode); 87 - int ret; 88 - 89 - sb_start_pagefault(inode->i_sb); 90 - file_update_time(vma->vm_file); 91 - down_read(&ei->dax_sem); 92 - 93 - ret = __dax_mkwrite(vma, vmf, ext2_get_block, NULL); 94 - 95 - up_read(&ei->dax_sem); 96 - sb_end_pagefault(inode->i_sb); 97 - return ret; 98 - } 99 - 100 83 static int ext2_dax_pfn_mkwrite(struct vm_area_struct *vma, 101 84 struct vm_fault *vmf) 102 85 { ··· 107 124 static const struct vm_operations_struct ext2_dax_vm_ops = { 108 125 .fault = ext2_dax_fault, 109 126 .pmd_fault = ext2_dax_pmd_fault, 110 - .page_mkwrite = ext2_dax_mkwrite, 127 + .page_mkwrite = ext2_dax_fault, 111 128 .pfn_mkwrite = ext2_dax_pfn_mkwrite, 112 129 }; 113 130
+2 -17
fs/ext4/file.c
··· 262 262 return result; 263 263 } 264 264 265 - static int ext4_dax_mkwrite(struct vm_area_struct *vma, struct vm_fault *vmf) 266 - { 267 - int err; 268 - struct inode *inode = file_inode(vma->vm_file); 269 - 270 - sb_start_pagefault(inode->i_sb); 271 - file_update_time(vma->vm_file); 272 - down_read(&EXT4_I(inode)->i_mmap_sem); 273 - err = __dax_mkwrite(vma, vmf, ext4_dax_mmap_get_block, NULL); 274 - up_read(&EXT4_I(inode)->i_mmap_sem); 275 - sb_end_pagefault(inode->i_sb); 276 - 277 - return err; 278 - } 279 - 280 265 /* 281 - * Handle write fault for VM_MIXEDMAP mappings. Similarly to ext4_dax_mkwrite() 266 + * Handle write fault for VM_MIXEDMAP mappings. Similarly to ext4_dax_fault() 282 267 * handler we check for races agaist truncate. Note that since we cycle through 283 268 * i_mmap_sem, we are sure that also any hole punching that began before we 284 269 * were called is finished by now and so if it included part of the file we ··· 296 311 static const struct vm_operations_struct ext4_dax_vm_ops = { 297 312 .fault = ext4_dax_fault, 298 313 .pmd_fault = ext4_dax_pmd_fault, 299 - .page_mkwrite = ext4_dax_mkwrite, 314 + .page_mkwrite = ext4_dax_fault, 300 315 .pfn_mkwrite = ext4_dax_pfn_mkwrite, 301 316 }; 302 317 #else