#ifndef _EXT4_MBALLOC_H
#define _EXT4_MBALLOC_H
#include <linux/time.h>
#include <linux/fs.h>
#include <linux/namei.h>
#include <linux/quotaops.h>
#include <linux/buffer_head.h>
#include <linux/module.h>
#include <linux/swap.h>
#include <linux/proc_fs.h>
#include <linux/pagemap.h>
#include <linux/seq_file.h>
#include <linux/blkdev.h>
#include <linux/mutex.h>
#include "ext4_jbd2.h"
#include "ext4.h"
#ifdef CONFIG_EXT4_DEBUG
#define mb_debug(sb, fmt, ...) …
#else
#define mb_debug …
#endif
#define EXT4_MB_HISTORY_ALLOC …
#define EXT4_MB_HISTORY_PREALLOC …
#define MB_DEFAULT_MAX_TO_SCAN …
#define MB_DEFAULT_MIN_TO_SCAN …
#define MB_DEFAULT_STATS …
#define MB_DEFAULT_STREAM_THRESHOLD …
#define MB_DEFAULT_ORDER2_REQS …
#define MB_DEFAULT_GROUP_PREALLOC …
#define MB_DEFAULT_LINEAR_LIMIT …
#define MB_DEFAULT_LINEAR_SCAN_THRESHOLD …
#define MB_DEFAULT_BEST_AVAIL_TRIM_ORDER …
#define MB_NUM_ORDERS(sb) …
struct ext4_free_data { … };
struct ext4_prealloc_space { … };
enum { … };
struct ext4_free_extent { … };
#define PREALLOC_TB_SIZE …
struct ext4_locality_group { … };
struct ext4_allocation_context { … };
#define AC_STATUS_CONTINUE …
#define AC_STATUS_FOUND …
#define AC_STATUS_BREAK …
struct ext4_buddy { … };
static inline ext4_fsblk_t ext4_grp_offs_to_block(struct super_block *sb,
struct ext4_free_extent *fex)
{ … }
static inline loff_t extent_logical_end(struct ext4_sb_info *sbi,
struct ext4_free_extent *fex)
{ … }
static inline loff_t pa_logical_end(struct ext4_sb_info *sbi,
struct ext4_prealloc_space *pa)
{ … }
ext4_mballoc_query_range_fn;
int
ext4_mballoc_query_range(
struct super_block *sb,
ext4_group_t agno,
ext4_grpblk_t start,
ext4_grpblk_t end,
ext4_mballoc_query_range_fn formatter,
void *priv);
#endif