#include <linux/fs.h>
#include <linux/f2fs_fs.h>
#include <linux/seq_file.h>
#include "f2fs.h"
#include "iostat.h"
#include <trace/events/f2fs.h>
static struct kmem_cache *bio_iostat_ctx_cache;
static mempool_t *bio_iostat_ctx_pool;
static inline unsigned long long iostat_get_avg_bytes(struct f2fs_sb_info *sbi,
enum iostat_type type)
{ … }
#define IOSTAT_INFO_SHOW(name, type) …
int __maybe_unused iostat_info_seq_show(struct seq_file *seq, void *offset)
{ … }
static inline void __record_iostat_latency(struct f2fs_sb_info *sbi)
{ … }
static inline void f2fs_record_iostat(struct f2fs_sb_info *sbi)
{ … }
void f2fs_reset_iostat(struct f2fs_sb_info *sbi)
{ … }
static inline void __f2fs_update_iostat(struct f2fs_sb_info *sbi,
enum iostat_type type, unsigned long long io_bytes)
{ … }
void f2fs_update_iostat(struct f2fs_sb_info *sbi, struct inode *inode,
enum iostat_type type, unsigned long long io_bytes)
{ … }
static inline void __update_iostat_latency(struct bio_iostat_ctx *iostat_ctx,
enum iostat_lat_type lat_type)
{ … }
void iostat_update_and_unbind_ctx(struct bio *bio)
{ … }
void iostat_alloc_and_bind_ctx(struct f2fs_sb_info *sbi,
struct bio *bio, struct bio_post_read_ctx *ctx)
{ … }
int __init f2fs_init_iostat_processing(void)
{ … }
void f2fs_destroy_iostat_processing(void)
{ … }
int f2fs_init_iostat(struct f2fs_sb_info *sbi)
{ … }
void f2fs_destroy_iostat(struct f2fs_sb_info *sbi)
{ … }