#include <linux/uaccess.h>
#include <linux/time.h>
#include "reiserfs.h"
#include <linux/buffer_head.h>
#include <linux/kernel.h>
static inline void buffer_info_init_left(struct tree_balance *tb,
struct buffer_info *bi)
{ … }
static inline void buffer_info_init_right(struct tree_balance *tb,
struct buffer_info *bi)
{ … }
static inline void buffer_info_init_tbS0(struct tree_balance *tb,
struct buffer_info *bi)
{ … }
static inline void buffer_info_init_bh(struct tree_balance *tb,
struct buffer_info *bi,
struct buffer_head *bh)
{ … }
inline void do_balance_mark_leaf_dirty(struct tree_balance *tb,
struct buffer_head *bh, int flag)
{ … }
#define do_balance_mark_internal_dirty …
#define do_balance_mark_sb_dirty …
static void balance_leaf_when_delete_del(struct tree_balance *tb)
{ … }
static void balance_leaf_when_delete_cut(struct tree_balance *tb)
{ … }
static int balance_leaf_when_delete_left(struct tree_balance *tb)
{ … }
static int balance_leaf_when_delete(struct tree_balance *tb, int flag)
{ … }
static unsigned int balance_leaf_insert_left(struct tree_balance *tb,
struct item_head *const ih,
const char * const body)
{ … }
static void balance_leaf_paste_left_shift_dirent(struct tree_balance *tb,
struct item_head * const ih,
const char * const body)
{ … }
static unsigned int balance_leaf_paste_left_shift(struct tree_balance *tb,
struct item_head * const ih,
const char * const body)
{ … }
static void balance_leaf_paste_left_whole(struct tree_balance *tb,
struct item_head * const ih,
const char * const body)
{ … }
static unsigned int balance_leaf_paste_left(struct tree_balance *tb,
struct item_head * const ih,
const char * const body)
{ … }
static unsigned int balance_leaf_left(struct tree_balance *tb,
struct item_head * const ih,
const char * const body, int flag)
{ … }
static void balance_leaf_insert_right(struct tree_balance *tb,
struct item_head * const ih,
const char * const body)
{ … }
static void balance_leaf_paste_right_shift_dirent(struct tree_balance *tb,
struct item_head * const ih,
const char * const body)
{ … }
static void balance_leaf_paste_right_shift(struct tree_balance *tb,
struct item_head * const ih,
const char * const body)
{ … }
static void balance_leaf_paste_right_whole(struct tree_balance *tb,
struct item_head * const ih,
const char * const body)
{ … }
static void balance_leaf_paste_right(struct tree_balance *tb,
struct item_head * const ih,
const char * const body)
{ … }
static void balance_leaf_right(struct tree_balance *tb,
struct item_head * const ih,
const char * const body, int flag)
{ … }
static void balance_leaf_new_nodes_insert(struct tree_balance *tb,
struct item_head * const ih,
const char * const body,
struct item_head *insert_key,
struct buffer_head **insert_ptr,
int i)
{ … }
static void balance_leaf_new_nodes_paste_dirent(struct tree_balance *tb,
struct item_head * const ih,
const char * const body,
struct item_head *insert_key,
struct buffer_head **insert_ptr,
int i)
{ … }
static void balance_leaf_new_nodes_paste_shift(struct tree_balance *tb,
struct item_head * const ih,
const char * const body,
struct item_head *insert_key,
struct buffer_head **insert_ptr,
int i)
{ … }
static void balance_leaf_new_nodes_paste_whole(struct tree_balance *tb,
struct item_head * const ih,
const char * const body,
struct item_head *insert_key,
struct buffer_head **insert_ptr,
int i)
{ … }
static void balance_leaf_new_nodes_paste(struct tree_balance *tb,
struct item_head * const ih,
const char * const body,
struct item_head *insert_key,
struct buffer_head **insert_ptr,
int i)
{ … }
static void balance_leaf_new_nodes(struct tree_balance *tb,
struct item_head * const ih,
const char * const body,
struct item_head *insert_key,
struct buffer_head **insert_ptr,
int flag)
{ … }
static void balance_leaf_finish_node_insert(struct tree_balance *tb,
struct item_head * const ih,
const char * const body)
{ … }
static void balance_leaf_finish_node_paste_dirent(struct tree_balance *tb,
struct item_head * const ih,
const char * const body)
{ … }
static void balance_leaf_finish_node_paste(struct tree_balance *tb,
struct item_head * const ih,
const char * const body)
{ … }
static void balance_leaf_finish_node(struct tree_balance *tb,
struct item_head * const ih,
const char * const body, int flag)
{ … }
static int balance_leaf(struct tree_balance *tb, struct item_head *ih,
const char *body, int flag,
struct item_head *insert_key,
struct buffer_head **insert_ptr)
{ … }
void make_empty_node(struct buffer_info *bi)
{ … }
struct buffer_head *get_FEB(struct tree_balance *tb)
{ … }
static void store_thrown(struct tree_balance *tb, struct buffer_head *bh)
{ … }
static void free_thrown(struct tree_balance *tb)
{ … }
void reiserfs_invalidate_buffer(struct tree_balance *tb, struct buffer_head *bh)
{ … }
void replace_key(struct tree_balance *tb, struct buffer_head *dest, int n_dest,
struct buffer_head *src, int n_src)
{ … }
int get_left_neighbor_position(struct tree_balance *tb, int h)
{ … }
int get_right_neighbor_position(struct tree_balance *tb, int h)
{ … }
#ifdef CONFIG_REISERFS_CHECK
int is_reusable(struct super_block *s, b_blocknr_t block, int bit_value);
static void check_internal_node(struct super_block *s, struct buffer_head *bh,
char *mes)
{ … }
static int locked_or_not_in_tree(struct tree_balance *tb,
struct buffer_head *bh, char *which)
{ … }
static int check_before_balancing(struct tree_balance *tb)
{ … }
static void check_after_balance_leaf(struct tree_balance *tb)
{ … }
static void check_leaf_level(struct tree_balance *tb)
{ … }
static void check_internal_levels(struct tree_balance *tb)
{ … }
#endif
static inline void do_balance_starts(struct tree_balance *tb)
{ … }
static inline void do_balance_completed(struct tree_balance *tb)
{ … }
void do_balance(struct tree_balance *tb, struct item_head *ih,
const char *body, int flag)
{ … }