Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Macros | Functions | Variables
xfs_alloc.c File Reference
#include "xfs.h"
#include "xfs_fs.h"
#include "xfs_types.h"
#include "xfs_bit.h"
#include "xfs_log.h"
#include "xfs_trans.h"
#include "xfs_sb.h"
#include "xfs_ag.h"
#include "xfs_mount.h"
#include "xfs_bmap_btree.h"
#include "xfs_alloc_btree.h"
#include "xfs_ialloc_btree.h"
#include "xfs_dinode.h"
#include "xfs_inode.h"
#include "xfs_btree.h"
#include "xfs_alloc.h"
#include "xfs_extent_busy.h"
#include "xfs_error.h"
#include "xfs_trace.h"

Go to the source code of this file.

Macros

#define XFS_ABSDIFF(a, b)   (((a) <= (b)) ? ((b) - (a)) : ((a) - (b)))
 
#define XFSA_FIXUP_BNO_OK   1
 
#define XFSA_FIXUP_CNT_OK   2
 

Functions

STATIC int xfs_alloc_ag_vextent_exact (xfs_alloc_arg_t *)
 
STATIC int xfs_alloc_ag_vextent_near (xfs_alloc_arg_t *)
 
STATIC int xfs_alloc_ag_vextent_size (xfs_alloc_arg_t *)
 
STATIC int xfs_alloc_ag_vextent_small (xfs_alloc_arg_t *, xfs_btree_cur_t *, xfs_agblock_t *, xfs_extlen_t *, int *)
 
STATIC int xfs_alloc_lookup_eq (struct xfs_btree_cur *cur, xfs_agblock_t bno, xfs_extlen_t len, int *stat)
 
int xfs_alloc_lookup_ge (struct xfs_btree_cur *cur, xfs_agblock_t bno, xfs_extlen_t len, int *stat)
 
int xfs_alloc_lookup_le (struct xfs_btree_cur *cur, xfs_agblock_t bno, xfs_extlen_t len, int *stat)
 
STATIC int xfs_alloc_update (struct xfs_btree_cur *cur, xfs_agblock_t bno, xfs_extlen_t len)
 
int xfs_alloc_get_rec (struct xfs_btree_cur *cur, xfs_agblock_t *bno, xfs_extlen_t *len, int *stat)
 
STATIC void xfs_alloc_compute_aligned (xfs_alloc_arg_t *args, xfs_agblock_t foundbno, xfs_extlen_t foundlen, xfs_agblock_t *resbno, xfs_extlen_t *reslen)
 
STATIC xfs_extlen_t xfs_alloc_compute_diff (xfs_agblock_t wantbno, xfs_extlen_t wantlen, xfs_extlen_t alignment, xfs_agblock_t freebno, xfs_extlen_t freelen, xfs_agblock_t *newbnop)
 
STATIC void xfs_alloc_fix_len (xfs_alloc_arg_t *args)
 
STATIC int xfs_alloc_fix_minleft (xfs_alloc_arg_t *args)
 
STATIC int xfs_alloc_fixup_trees (xfs_btree_cur_t *cnt_cur, xfs_btree_cur_t *bno_cur, xfs_agblock_t fbno, xfs_extlen_t flen, xfs_agblock_t rbno, xfs_extlen_t rlen, int flags)
 
STATIC int xfs_alloc_read_agfl (xfs_mount_t *mp, xfs_trans_t *tp, xfs_agnumber_t agno, xfs_buf_t **bpp)
 
STATIC int xfs_alloc_update_counters (struct xfs_trans *tp, struct xfs_perag *pag, struct xfs_buf *agbp, long len)
 
STATIC int xfs_alloc_ag_vextent (xfs_alloc_arg_t *args)
 
STATIC int xfs_alloc_find_best_extent (struct xfs_alloc_arg *args, struct xfs_btree_cur **gcur, struct xfs_btree_cur **scur, xfs_agblock_t gdiff, xfs_agblock_t *sbno, xfs_extlen_t *slen, xfs_agblock_t *sbnoa, xfs_extlen_t *slena, int dir)
 
STATIC int xfs_free_ag_extent (xfs_trans_t *tp, xfs_buf_t *agbp, xfs_agnumber_t agno, xfs_agblock_t bno, xfs_extlen_t len, int isfl)
 
void xfs_alloc_compute_maxlevels (xfs_mount_t *mp)
 
xfs_extlen_t xfs_alloc_longest_free_extent (struct xfs_mount *mp, struct xfs_perag *pag)
 
STATIC int xfs_alloc_fix_freelist (xfs_alloc_arg_t *args, int flags)
 
int xfs_alloc_get_freelist (xfs_trans_t *tp, xfs_buf_t *agbp, xfs_agblock_t *bnop, int btreeblk)
 
void xfs_alloc_log_agf (xfs_trans_t *tp, xfs_buf_t *bp, int fields)
 
int xfs_alloc_pagf_init (xfs_mount_t *mp, xfs_trans_t *tp, xfs_agnumber_t agno, int flags)
 
int xfs_alloc_put_freelist (xfs_trans_t *tp, xfs_buf_t *agbp, xfs_buf_t *agflbp, xfs_agblock_t bno, int btreeblk)
 
int xfs_read_agf (struct xfs_mount *mp, struct xfs_trans *tp, xfs_agnumber_t agno, int flags, struct xfs_buf **bpp)
 
int xfs_alloc_read_agf (struct xfs_mount *mp, struct xfs_trans *tp, xfs_agnumber_t agno, int flags, struct xfs_buf **bpp)
 
int xfs_alloc_vextent (xfs_alloc_arg_t *args)
 
int xfs_free_extent (xfs_trans_t *tp, xfs_fsblock_t bno, xfs_extlen_t len)
 

Variables

struct workqueue_structxfs_alloc_wq
 

Macro Definition Documentation

#define XFS_ABSDIFF (   a,
  b 
)    (((a) <= (b)) ? ((b) - (a)) : ((a) - (b)))

Definition at line 40 of file xfs_alloc.c.

#define XFSA_FIXUP_BNO_OK   1

Definition at line 42 of file xfs_alloc.c.

#define XFSA_FIXUP_CNT_OK   2

Definition at line 43 of file xfs_alloc.c.

Function Documentation

STATIC int xfs_alloc_ag_vextent ( xfs_alloc_arg_t args)

Definition at line 493 of file xfs_alloc.c.

STATIC int xfs_alloc_ag_vextent_exact ( xfs_alloc_arg_t args)

Definition at line 560 of file xfs_alloc.c.

STATIC int xfs_alloc_ag_vextent_near ( xfs_alloc_arg_t args)

Definition at line 762 of file xfs_alloc.c.

STATIC int xfs_alloc_ag_vextent_size ( xfs_alloc_arg_t args)

Definition at line 1156 of file xfs_alloc.c.

STATIC int xfs_alloc_ag_vextent_small ( xfs_alloc_arg_t args,
xfs_btree_cur_t ccur,
xfs_agblock_t fbnop,
xfs_extlen_t flenp,
int stat 
)

Definition at line 1362 of file xfs_alloc.c.

STATIC void xfs_alloc_compute_aligned ( xfs_alloc_arg_t args,
xfs_agblock_t  foundbno,
xfs_extlen_t  foundlen,
xfs_agblock_t resbno,
xfs_extlen_t reslen 
)

Definition at line 142 of file xfs_alloc.c.

STATIC xfs_extlen_t xfs_alloc_compute_diff ( xfs_agblock_t  wantbno,
xfs_extlen_t  wantlen,
xfs_extlen_t  alignment,
xfs_agblock_t  freebno,
xfs_extlen_t  freelen,
xfs_agblock_t newbnop 
)

Definition at line 172 of file xfs_alloc.c.

void xfs_alloc_compute_maxlevels ( xfs_mount_t *  mp)

Definition at line 1707 of file xfs_alloc.c.

STATIC int xfs_alloc_find_best_extent ( struct xfs_alloc_arg args,
struct xfs_btree_cur **  gcur,
struct xfs_btree_cur **  scur,
xfs_agblock_t  gdiff,
xfs_agblock_t sbno,
xfs_extlen_t slen,
xfs_agblock_t sbnoa,
xfs_extlen_t slena,
int  dir 
)

Definition at line 672 of file xfs_alloc.c.

STATIC int xfs_alloc_fix_freelist ( xfs_alloc_arg_t args,
int  flags 
)

Definition at line 1749 of file xfs_alloc.c.

STATIC void xfs_alloc_fix_len ( xfs_alloc_arg_t args)

Definition at line 234 of file xfs_alloc.c.

STATIC int xfs_alloc_fix_minleft ( xfs_alloc_arg_t args)

Definition at line 268 of file xfs_alloc.c.

STATIC int xfs_alloc_fixup_trees ( xfs_btree_cur_t cnt_cur,
xfs_btree_cur_t bno_cur,
xfs_agblock_t  fbno,
xfs_extlen_t  flen,
xfs_agblock_t  rbno,
xfs_extlen_t  rlen,
int  flags 
)

Definition at line 296 of file xfs_alloc.c.

int xfs_alloc_get_freelist ( xfs_trans_t *  tp,
xfs_buf_t agbp,
xfs_agblock_t bnop,
int  btreeblk 
)

Definition at line 1926 of file xfs_alloc.c.

int xfs_alloc_get_rec ( struct xfs_btree_cur cur,
xfs_agblock_t bno,
xfs_extlen_t len,
int stat 
)

Definition at line 120 of file xfs_alloc.c.

void xfs_alloc_log_agf ( xfs_trans_t *  tp,
xfs_buf_t bp,
int  fields 
)

Definition at line 1989 of file xfs_alloc.c.

xfs_extlen_t xfs_alloc_longest_free_extent ( struct xfs_mount *  mp,
struct xfs_perag pag 
)

Definition at line 1729 of file xfs_alloc.c.

STATIC int xfs_alloc_lookup_eq ( struct xfs_btree_cur cur,
xfs_agblock_t  bno,
xfs_extlen_t  len,
int stat 
)

Definition at line 55 of file xfs_alloc.c.

int xfs_alloc_lookup_ge ( struct xfs_btree_cur cur,
xfs_agblock_t  bno,
xfs_extlen_t  len,
int stat 
)

Definition at line 71 of file xfs_alloc.c.

int xfs_alloc_lookup_le ( struct xfs_btree_cur cur,
xfs_agblock_t  bno,
xfs_extlen_t  len,
int stat 
)

Definition at line 87 of file xfs_alloc.c.

int xfs_alloc_pagf_init ( xfs_mount_t *  mp,
xfs_trans_t *  tp,
xfs_agnumber_t  agno,
int  flags 
)

Definition at line 2022 of file xfs_alloc.c.

int xfs_alloc_put_freelist ( xfs_trans_t *  tp,
xfs_buf_t agbp,
xfs_buf_t agflbp,
xfs_agblock_t  bno,
int  btreeblk 
)

Definition at line 2042 of file xfs_alloc.c.

int xfs_alloc_read_agf ( struct xfs_mount *  mp,
struct xfs_trans *  tp,
xfs_agnumber_t  agno,
int  flags,
struct xfs_buf **  bpp 
)

Definition at line 2151 of file xfs_alloc.c.

STATIC int xfs_alloc_read_agfl ( xfs_mount_t *  mp,
xfs_trans_t *  tp,
xfs_agnumber_t  agno,
xfs_buf_t **  bpp 
)

Definition at line 437 of file xfs_alloc.c.

STATIC int xfs_alloc_update ( struct xfs_btree_cur cur,
xfs_agblock_t  bno,
xfs_extlen_t  len 
)

Definition at line 104 of file xfs_alloc.c.

STATIC int xfs_alloc_update_counters ( struct xfs_trans *  tp,
struct xfs_perag pag,
struct xfs_buf agbp,
long  len 
)

Definition at line 460 of file xfs_alloc.c.

int xfs_alloc_vextent ( xfs_alloc_arg_t args)

Definition at line 2211 of file xfs_alloc.c.

STATIC int xfs_free_ag_extent ( xfs_trans_t *  tp,
xfs_buf_t agbp,
xfs_agnumber_t  agno,
xfs_agblock_t  bno,
xfs_extlen_t  len,
int  isfl 
)

Definition at line 1450 of file xfs_alloc.c.

int xfs_free_extent ( xfs_trans_t *  tp,
xfs_fsblock_t  bno,
xfs_extlen_t  len 
)

Definition at line 2427 of file xfs_alloc.c.

int xfs_read_agf ( struct xfs_mount *  mp,
struct xfs_trans *  tp,
xfs_agnumber_t  agno,
int  flags,
struct xfs_buf **  bpp 
)

Definition at line 2098 of file xfs_alloc.c.

Variable Documentation

struct workqueue_struct* xfs_alloc_wq

Definition at line 38 of file xfs_alloc.c.