summaryrefslogtreecommitdiffstats
path: root/fs/ext4/file.c
diff options
context:
space:
mode:
Diffstat (limited to 'fs/ext4/file.c')
-rw-r--r--fs/ext4/file.c13
1 files changed, 7 insertions, 6 deletions
diff --git a/fs/ext4/file.c b/fs/ext4/file.c
index 3cec0b95672f..208adfc3e673 100644
--- a/fs/ext4/file.c
+++ b/fs/ext4/file.c
@@ -302,16 +302,17 @@ static int ext4_dax_huge_fault(struct vm_fault *vmf,
302 down_read(&EXT4_I(inode)->i_mmap_sem); 302 down_read(&EXT4_I(inode)->i_mmap_sem);
303 handle = ext4_journal_start_sb(sb, EXT4_HT_WRITE_PAGE, 303 handle = ext4_journal_start_sb(sb, EXT4_HT_WRITE_PAGE,
304 EXT4_DATA_TRANS_BLOCKS(sb)); 304 EXT4_DATA_TRANS_BLOCKS(sb));
305 if (IS_ERR(handle)) {
306 up_read(&EXT4_I(inode)->i_mmap_sem);
307 sb_end_pagefault(sb);
308 return VM_FAULT_SIGBUS;
309 }
305 } else { 310 } else {
306 down_read(&EXT4_I(inode)->i_mmap_sem); 311 down_read(&EXT4_I(inode)->i_mmap_sem);
307 } 312 }
308 if (!IS_ERR(handle)) 313 result = dax_iomap_fault(vmf, pe_size, NULL, &ext4_iomap_ops);
309 result = dax_iomap_fault(vmf, pe_size, NULL, &ext4_iomap_ops);
310 else
311 result = VM_FAULT_SIGBUS;
312 if (write) { 314 if (write) {
313 if (!IS_ERR(handle)) 315 ext4_journal_stop(handle);
314 ext4_journal_stop(handle);
315 up_read(&EXT4_I(inode)->i_mmap_sem); 316 up_read(&EXT4_I(inode)->i_mmap_sem);
316 sb_end_pagefault(sb); 317 sb_end_pagefault(sb);
317 } else { 318 } else {