diff --git a/fs/ext4/inode.c b/fs/ext4/inode.c
index 9b3380327ae287e899580c13faa31dde6c5aa17c..e3d0fb9e78c4b4c78b86dd0d530a60c03938e18a 100644
--- a/fs/ext4/inode.c
+++ b/fs/ext4/inode.c
@@ -3681,8 +3681,11 @@ int ext4_block_zero_page_range(handle_t *handle,
 	err = 0;
 	if (ext4_should_journal_data(inode)) {
 		err = ext4_handle_dirty_metadata(handle, inode, bh);
-	} else
+	} else {
 		mark_buffer_dirty(bh);
+		if (ext4_test_inode_state(inode, EXT4_STATE_ORDERED_MODE))
+			err = ext4_jbd2_file_inode(handle, inode);
+	}
 
 unlock:
 	unlock_page(page);