#include <linux/fs.h>
#include <linux/time.h>
#include <linux/highuid.h>
#include <linux/pagemap.h>
#include <linux/quotaops.h>
#include <linux/string.h>
#include <linux/buffer_head.h>
#include <linux/writeback.h>
#include <linux/pagevec.h>
#include <linux/mpage.h>
#include <linux/namei.h>
#include <linux/uio.h>
#include <linux/bio.h>
#include <linux/workqueue.h>
#include <linux/kernel.h>
#include <linux/slab.h>
#include <linux/mm.h>
#include <linux/sched/mm.h>
#include "ext4_jbd2.h"
#include "xattr.h"
#include "acl.h"
static struct kmem_cache *io_end_cachep;
static struct kmem_cache *io_end_vec_cachep;
int __init ext4_init_pageio(void)
{ … }
void ext4_exit_pageio(void)
{ … }
struct ext4_io_end_vec *ext4_alloc_io_end_vec(ext4_io_end_t *io_end)
{ … }
static void ext4_free_io_end_vec(ext4_io_end_t *io_end)
{ … }
struct ext4_io_end_vec *ext4_last_io_end_vec(ext4_io_end_t *io_end)
{ … }
static void buffer_io_error(struct buffer_head *bh)
{ … }
static void ext4_finish_bio(struct bio *bio)
{ … }
static void ext4_release_io_end(ext4_io_end_t *io_end)
{ … }
static int ext4_end_io_end(ext4_io_end_t *io_end)
{ … }
static void dump_completed_IO(struct inode *inode, struct list_head *head)
{ … }
static void ext4_add_complete_io(ext4_io_end_t *io_end)
{ … }
static int ext4_do_flush_completed_IO(struct inode *inode,
struct list_head *head)
{ … }
void ext4_end_io_rsv_work(struct work_struct *work)
{ … }
ext4_io_end_t *ext4_init_io_end(struct inode *inode, gfp_t flags)
{ … }
void ext4_put_io_end_defer(ext4_io_end_t *io_end)
{ … }
int ext4_put_io_end(ext4_io_end_t *io_end)
{ … }
ext4_io_end_t *ext4_get_io_end(ext4_io_end_t *io_end)
{ … }
static void ext4_end_bio(struct bio *bio)
{ … }
void ext4_io_submit(struct ext4_io_submit *io)
{ … }
void ext4_io_submit_init(struct ext4_io_submit *io,
struct writeback_control *wbc)
{ … }
static void io_submit_init_bio(struct ext4_io_submit *io,
struct buffer_head *bh)
{ … }
static void io_submit_add_bh(struct ext4_io_submit *io,
struct inode *inode,
struct folio *folio,
struct folio *io_folio,
struct buffer_head *bh)
{ … }
int ext4_bio_write_folio(struct ext4_io_submit *io, struct folio *folio,
size_t len)
{ … }