Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Macros | Functions | Variables
xfs_inode.c File Reference
#include <linux/log2.h>
#include "xfs.h"
#include "xfs_fs.h"
#include "xfs_types.h"
#include "xfs_log.h"
#include "xfs_inum.h"
#include "xfs_trans.h"
#include "xfs_trans_priv.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_attr_sf.h"
#include "xfs_dinode.h"
#include "xfs_inode.h"
#include "xfs_buf_item.h"
#include "xfs_inode_item.h"
#include "xfs_btree.h"
#include "xfs_alloc.h"
#include "xfs_ialloc.h"
#include "xfs_bmap.h"
#include "xfs_error.h"
#include "xfs_utils.h"
#include "xfs_quota.h"
#include "xfs_filestream.h"
#include "xfs_vnodeops.h"
#include "xfs_trace.h"

Go to the source code of this file.

Macros

#define XFS_ITRUNC_MAX_EXTENTS   2
 
#define xfs_validate_extents(ifp, nrecs, fmt)
 

Functions

STATIC int xfs_iflush_int (xfs_inode_t *, xfs_buf_t *)
 
STATIC int xfs_iformat_local (xfs_inode_t *, xfs_dinode_t *, int, int)
 
STATIC int xfs_iformat_extents (xfs_inode_t *, xfs_dinode_t *, int)
 
STATIC int xfs_iformat_btree (xfs_inode_t *, xfs_dinode_t *, int)
 
xfs_extlen_t xfs_get_extsz_hint (struct xfs_inode *ip)
 
int xfs_imap_to_bp (struct xfs_mount *mp, struct xfs_trans *tp, struct xfs_imap *imap, struct xfs_dinode **dipp, struct xfs_buf **bpp, uint buf_flags, uint iget_flags)
 
STATIC int xfs_iformat (xfs_inode_t *ip, xfs_dinode_t *dip)
 
STATIC void xfs_dinode_from_disk (xfs_icdinode_t *to, xfs_dinode_t *from)
 
void xfs_dinode_to_disk (xfs_dinode_t *to, xfs_icdinode_t *from)
 
STATIC uint _xfs_dic2xflags (__uint16_t di_flags)
 
uint xfs_ip2xflags (xfs_inode_t *ip)
 
uint xfs_dic2xflags (xfs_dinode_t *dip)
 
int xfs_iread (xfs_mount_t *mp, xfs_trans_t *tp, xfs_inode_t *ip, uint iget_flags)
 
int xfs_iread_extents (xfs_trans_t *tp, xfs_inode_t *ip, int whichfork)
 
int xfs_ialloc (xfs_trans_t *tp, xfs_inode_t *pip, umode_t mode, xfs_nlink_t nlink, xfs_dev_t rdev, prid_t prid, int okalloc, xfs_buf_t **ialloc_context, xfs_inode_t **ipp)
 
int xfs_itruncate_extents (struct xfs_trans **tpp, struct xfs_inode *ip, int whichfork, xfs_fsize_t new_size)
 
int xfs_iunlink (xfs_trans_t *tp, xfs_inode_t *ip)
 
STATIC int xfs_iunlink_remove (xfs_trans_t *tp, xfs_inode_t *ip)
 
STATIC int xfs_ifree_cluster (xfs_inode_t *free_ip, xfs_trans_t *tp, xfs_ino_t inum)
 
int xfs_ifree (xfs_trans_t *tp, xfs_inode_t *ip, xfs_bmap_free_t *flist)
 
void xfs_iroot_realloc (xfs_inode_t *ip, int rec_diff, int whichfork)
 
void xfs_idata_realloc (xfs_inode_t *ip, int byte_diff, int whichfork)
 
void xfs_idestroy_fork (xfs_inode_t *ip, int whichfork)
 
void xfs_iunpin_wait (struct xfs_inode *ip)
 
int xfs_iextents_copy (xfs_inode_t *ip, xfs_bmbt_rec_t *dp, int whichfork)
 
STATIC void xfs_iflush_fork (xfs_inode_t *ip, xfs_dinode_t *dip, xfs_inode_log_item_t *iip, int whichfork, xfs_buf_t *bp)
 
STATIC int xfs_iflush_cluster (xfs_inode_t *ip, xfs_buf_t *bp)
 
int xfs_iflush (struct xfs_inode *ip, struct xfs_buf **bpp)
 
xfs_bmbt_rec_host_txfs_iext_get_ext (xfs_ifork_t *ifp, xfs_extnum_t idx)
 
void xfs_iext_insert (xfs_inode_t *ip, xfs_extnum_t idx, xfs_extnum_t count, xfs_bmbt_irec_t *new, int state)
 
void xfs_iext_add (xfs_ifork_t *ifp, xfs_extnum_t idx, int ext_diff)
 
void xfs_iext_add_indirect_multi (xfs_ifork_t *ifp, int erp_idx, xfs_extnum_t idx, int count)
 
void xfs_iext_remove (xfs_inode_t *ip, xfs_extnum_t idx, int ext_diff, int state)
 
void xfs_iext_remove_inline (xfs_ifork_t *ifp, xfs_extnum_t idx, int ext_diff)
 
void xfs_iext_remove_direct (xfs_ifork_t *ifp, xfs_extnum_t idx, int ext_diff)
 
void xfs_iext_remove_indirect (xfs_ifork_t *ifp, xfs_extnum_t idx, int count)
 
void xfs_iext_realloc_direct (xfs_ifork_t *ifp, int new_size)
 
void xfs_iext_direct_to_inline (xfs_ifork_t *ifp, xfs_extnum_t nextents)
 
void xfs_iext_inline_to_direct (xfs_ifork_t *ifp, int new_size)
 
STATIC void xfs_iext_realloc_indirect (xfs_ifork_t *ifp, int new_size)
 
STATIC void xfs_iext_indirect_to_direct (xfs_ifork_t *ifp)
 
void xfs_iext_destroy (xfs_ifork_t *ifp)
 
xfs_bmbt_rec_host_txfs_iext_bno_to_ext (xfs_ifork_t *ifp, xfs_fileoff_t bno, xfs_extnum_t *idxp)
 
xfs_ext_irec_txfs_iext_bno_to_irec (xfs_ifork_t *ifp, xfs_fileoff_t bno, int *erp_idxp)
 
xfs_ext_irec_txfs_iext_idx_to_irec (xfs_ifork_t *ifp, xfs_extnum_t *idxp, int *erp_idxp, int realloc)
 
void xfs_iext_irec_init (xfs_ifork_t *ifp)
 
xfs_ext_irec_txfs_iext_irec_new (xfs_ifork_t *ifp, int erp_idx)
 
void xfs_iext_irec_remove (xfs_ifork_t *ifp, int erp_idx)
 
void xfs_iext_irec_compact (xfs_ifork_t *ifp)
 
void xfs_iext_irec_compact_pages (xfs_ifork_t *ifp)
 
void xfs_iext_irec_update_extoffs (xfs_ifork_t *ifp, int erp_idx, int ext_diff)
 

Variables

kmem_zone_txfs_ifork_zone
 
kmem_zone_txfs_inode_zone
 

Macro Definition Documentation

#define XFS_ITRUNC_MAX_EXTENTS   2

Definition at line 56 of file xfs_inode.c.

#define xfs_validate_extents (   ifp,
  nrecs,
  fmt 
)

Definition at line 102 of file xfs_inode.c.

Function Documentation

STATIC uint _xfs_dic2xflags ( __uint16_t  di_flags)

Definition at line 636 of file xfs_inode.c.

uint xfs_dic2xflags ( xfs_dinode_t *  dip)

Definition at line 686 of file xfs_inode.c.

STATIC void xfs_dinode_from_disk ( xfs_icdinode_t to,
xfs_dinode_t *  from 
)

Definition at line 564 of file xfs_inode.c.

void xfs_dinode_to_disk ( xfs_dinode_t *  to,
xfs_icdinode_t from 
)

Definition at line 600 of file xfs_inode.c.

xfs_extlen_t xfs_get_extsz_hint ( struct xfs_inode *  ip)

Definition at line 67 of file xfs_inode.c.

int xfs_ialloc ( xfs_trans_t *  tp,
xfs_inode_t *  pip,
umode_t  mode,
xfs_nlink_t  nlink,
xfs_dev_t  rdev,
prid_t  prid,
int  okalloc,
xfs_buf_t **  ialloc_context,
xfs_inode_t **  ipp 
)

Definition at line 881 of file xfs_inode.c.

void xfs_idata_realloc ( xfs_inode_t *  ip,
int  byte_diff,
int  whichfork 
)

Definition at line 1854 of file xfs_inode.c.

void xfs_idestroy_fork ( xfs_inode_t *  ip,
int  whichfork 
)

Definition at line 1931 of file xfs_inode.c.

void xfs_iext_add ( xfs_ifork_t ifp,
xfs_extnum_t  idx,
int  ext_diff 
)

Definition at line 2696 of file xfs_inode.c.

void xfs_iext_add_indirect_multi ( xfs_ifork_t ifp,
int  erp_idx,
xfs_extnum_t  idx,
int  count 
)

Definition at line 2809 of file xfs_inode.c.

xfs_bmbt_rec_host_t* xfs_iext_bno_to_ext ( xfs_ifork_t ifp,
xfs_fileoff_t  bno,
xfs_extnum_t idxp 
)

Definition at line 3290 of file xfs_inode.c.

xfs_ext_irec_t* xfs_iext_bno_to_irec ( xfs_ifork_t ifp,
xfs_fileoff_t  bno,
int erp_idxp 
)

Definition at line 3361 of file xfs_inode.c.

void xfs_iext_destroy ( xfs_ifork_t ifp)

Definition at line 3263 of file xfs_inode.c.

void xfs_iext_direct_to_inline ( xfs_ifork_t ifp,
xfs_extnum_t  nextents 
)

Definition at line 3163 of file xfs_inode.c.

xfs_bmbt_rec_host_t* xfs_iext_get_ext ( xfs_ifork_t ifp,
xfs_extnum_t  idx 
)

Definition at line 2637 of file xfs_inode.c.

xfs_ext_irec_t* xfs_iext_idx_to_irec ( xfs_ifork_t ifp,
xfs_extnum_t idxp,
int erp_idxp,
int  realloc 
)

Definition at line 3402 of file xfs_inode.c.

STATIC void xfs_iext_indirect_to_direct ( xfs_ifork_t ifp)

Definition at line 3234 of file xfs_inode.c.

void xfs_iext_inline_to_direct ( xfs_ifork_t ifp,
int  new_size 
)

Definition at line 3190 of file xfs_inode.c.

void xfs_iext_insert ( xfs_inode_t *  ip,
xfs_extnum_t  idx,
xfs_extnum_t  count,
xfs_bmbt_irec_t new,
int  state 
)

Definition at line 2665 of file xfs_inode.c.

void xfs_iext_irec_compact ( xfs_ifork_t ifp)

Definition at line 3583 of file xfs_inode.c.

void xfs_iext_irec_compact_pages ( xfs_ifork_t ifp)

Definition at line 3609 of file xfs_inode.c.

void xfs_iext_irec_init ( xfs_ifork_t ifp)

Definition at line 3460 of file xfs_inode.c.

xfs_ext_irec_t* xfs_iext_irec_new ( xfs_ifork_t ifp,
int  erp_idx 
)

Definition at line 3495 of file xfs_inode.c.

void xfs_iext_irec_remove ( xfs_ifork_t ifp,
int  erp_idx 
)

Definition at line 3534 of file xfs_inode.c.

void xfs_iext_irec_update_extoffs ( xfs_ifork_t ifp,
int  erp_idx,
int  ext_diff 
)

Definition at line 3650 of file xfs_inode.c.

void xfs_iext_realloc_direct ( xfs_ifork_t ifp,
int  new_size 
)

Definition at line 3103 of file xfs_inode.c.

STATIC void xfs_iext_realloc_indirect ( xfs_ifork_t ifp,
int  new_size 
)

Definition at line 3209 of file xfs_inode.c.

void xfs_iext_remove ( xfs_inode_t *  ip,
xfs_extnum_t  idx,
int  ext_diff,
int  state 
)

Definition at line 2917 of file xfs_inode.c.

void xfs_iext_remove_direct ( xfs_ifork_t ifp,
xfs_extnum_t  idx,
int  ext_diff 
)

Definition at line 2987 of file xfs_inode.c.

void xfs_iext_remove_indirect ( xfs_ifork_t ifp,
xfs_extnum_t  idx,
int  count 
)

Definition at line 3039 of file xfs_inode.c.

void xfs_iext_remove_inline ( xfs_ifork_t ifp,
xfs_extnum_t  idx,
int  ext_diff 
)

Definition at line 2950 of file xfs_inode.c.

int xfs_iextents_copy ( xfs_inode_t *  ip,
xfs_bmbt_rec_t dp,
int  whichfork 
)

Definition at line 2028 of file xfs_inode.c.

int xfs_iflush ( struct xfs_inode *  ip,
struct xfs_buf **  bpp 
)

Definition at line 2340 of file xfs_inode.c.

STATIC int xfs_iflush_cluster ( xfs_inode_t *  ip,
xfs_buf_t bp 
)

Definition at line 2179 of file xfs_inode.c.

STATIC void xfs_iflush_fork ( xfs_inode_t *  ip,
xfs_dinode_t *  dip,
xfs_inode_log_item_t *  iip,
int  whichfork,
xfs_buf_t bp 
)

Definition at line 2088 of file xfs_inode.c.

STATIC int xfs_iflush_int ( xfs_inode_t *  ip,
xfs_buf_t bp 
)

Definition at line 2436 of file xfs_inode.c.

STATIC int xfs_iformat ( xfs_inode_t *  ip,
xfs_dinode_t *  dip 
)

Definition at line 228 of file xfs_inode.c.

STATIC int xfs_iformat_btree ( xfs_inode_t *  ip,
xfs_dinode_t *  dip,
int  whichfork 
)

Definition at line 512 of file xfs_inode.c.

STATIC int xfs_iformat_extents ( xfs_inode_t *  ip,
xfs_dinode_t *  dip,
int  whichfork 
)

Definition at line 443 of file xfs_inode.c.

STATIC int xfs_iformat_local ( xfs_inode_t *  ip,
xfs_dinode_t *  dip,
int  whichfork,
int  size 
)

Definition at line 391 of file xfs_inode.c.

int xfs_ifree ( xfs_trans_t *  tp,
xfs_inode_t *  ip,
xfs_bmap_free_t flist 
)

Definition at line 1639 of file xfs_inode.c.

STATIC int xfs_ifree_cluster ( xfs_inode_t *  free_ip,
xfs_trans_t *  tp,
xfs_ino_t  inum 
)

Definition at line 1470 of file xfs_inode.c.

int xfs_imap_to_bp ( struct xfs_mount *  mp,
struct xfs_trans *  tp,
struct xfs_imap imap,
struct xfs_dinode **  dipp,
struct xfs_buf **  bpp,
uint  buf_flags,
uint  iget_flags 
)

Definition at line 144 of file xfs_inode.c.

uint xfs_ip2xflags ( xfs_inode_t *  ip)

Definition at line 676 of file xfs_inode.c.

int xfs_iread ( xfs_mount_t *  mp,
xfs_trans_t *  tp,
xfs_inode_t *  ip,
uint  iget_flags 
)

Definition at line 697 of file xfs_inode.c.

int xfs_iread_extents ( xfs_trans_t *  tp,
xfs_inode_t *  ip,
int  whichfork 
)

Definition at line 816 of file xfs_inode.c.

void xfs_iroot_realloc ( xfs_inode_t *  ip,
int  rec_diff,
int  whichfork 
)

Definition at line 1728 of file xfs_inode.c.

int xfs_itruncate_extents ( struct xfs_trans **  tpp,
struct xfs_inode *  ip,
int  whichfork,
xfs_fsize_t  new_size 
)

Definition at line 1108 of file xfs_inode.c.

int xfs_iunlink ( xfs_trans_t *  tp,
xfs_inode_t *  ip 
)

Definition at line 1231 of file xfs_inode.c.

STATIC int xfs_iunlink_remove ( xfs_trans_t *  tp,
xfs_inode_t *  ip 
)

Definition at line 1307 of file xfs_inode.c.

void xfs_iunpin_wait ( struct xfs_inode *  ip)

Definition at line 2009 of file xfs_inode.c.

Variable Documentation

kmem_zone_t* xfs_ifork_zone

Definition at line 49 of file xfs_inode.c.

kmem_zone_t* xfs_inode_zone

Definition at line 50 of file xfs_inode.c.