#include "xfs.h"
#include "xfs_fs.h"
#include "xfs_shared.h"
#include "xfs_format.h"
#include "xfs_log_format.h"
#include "xfs_trans_resv.h"
#include "xfs_mount.h"
#include "xfs_inode.h"
#include "xfs_trans.h"
#include "xfs_bmap.h"
#include "xfs_buf_item.h"
#include "xfs_dir2.h"
#include "xfs_dir2_priv.h"
#include "xfs_error.h"
#include "xfs_trace.h"
#include "xfs_log.h"
#include "xfs_health.h"
static void xfs_dir2_block_log_leaf(xfs_trans_t *tp, struct xfs_buf *bp,
int first, int last);
static void xfs_dir2_block_log_tail(xfs_trans_t *tp, struct xfs_buf *bp);
static int xfs_dir2_block_lookup_int(xfs_da_args_t *args, struct xfs_buf **bpp,
int *entno);
static int xfs_dir2_block_sort(const void *a, const void *b);
static xfs_dahash_t xfs_dir_hash_dot, xfs_dir_hash_dotdot;
void
xfs_dir_startup(void)
{ … }
static xfs_failaddr_t
xfs_dir3_block_verify(
struct xfs_buf *bp)
{ … }
static void
xfs_dir3_block_read_verify(
struct xfs_buf *bp)
{ … }
static void
xfs_dir3_block_write_verify(
struct xfs_buf *bp)
{ … }
const struct xfs_buf_ops xfs_dir3_block_buf_ops = …;
xfs_failaddr_t
xfs_dir3_block_header_check(
struct xfs_buf *bp,
xfs_ino_t owner)
{ … }
int
xfs_dir3_block_read(
struct xfs_trans *tp,
struct xfs_inode *dp,
xfs_ino_t owner,
struct xfs_buf **bpp)
{ … }
static void
xfs_dir3_block_init(
struct xfs_da_args *args,
struct xfs_buf *bp)
{ … }
static void
xfs_dir2_block_need_space(
struct xfs_inode *dp,
struct xfs_dir2_data_hdr *hdr,
struct xfs_dir2_block_tail *btp,
struct xfs_dir2_leaf_entry *blp,
__be16 **tagpp,
struct xfs_dir2_data_unused **dupp,
struct xfs_dir2_data_unused **enddupp,
int *compact,
int len)
{ … }
static void
xfs_dir2_block_compact(
struct xfs_da_args *args,
struct xfs_buf *bp,
struct xfs_dir2_data_hdr *hdr,
struct xfs_dir2_block_tail *btp,
struct xfs_dir2_leaf_entry *blp,
int *needlog,
int *lfloghigh,
int *lfloglow)
{ … }
int
xfs_dir2_block_addname(
xfs_da_args_t *args)
{ … }
static void
xfs_dir2_block_log_leaf(
xfs_trans_t *tp,
struct xfs_buf *bp,
int first,
int last)
{ … }
static void
xfs_dir2_block_log_tail(
xfs_trans_t *tp,
struct xfs_buf *bp)
{ … }
int
xfs_dir2_block_lookup(
xfs_da_args_t *args)
{ … }
static int
xfs_dir2_block_lookup_int(
xfs_da_args_t *args,
struct xfs_buf **bpp,
int *entno)
{ … }
int
xfs_dir2_block_removename(
xfs_da_args_t *args)
{ … }
int
xfs_dir2_block_replace(
xfs_da_args_t *args)
{ … }
static int
xfs_dir2_block_sort(
const void *a,
const void *b)
{ … }
int
xfs_dir2_leaf_to_block(
xfs_da_args_t *args,
struct xfs_buf *lbp,
struct xfs_buf *dbp)
{ … }
int
xfs_dir2_sf_to_block(
struct xfs_da_args *args)
{ … }