aboutsummaryrefslogtreecommitdiffstats
path: root/fs/xfs/libxfs/xfs_inode_buf.h
diff options
context:
space:
mode:
Diffstat (limited to 'fs/xfs/libxfs/xfs_inode_buf.h')
-rw-r--r--fs/xfs/libxfs/xfs_inode_buf.h38
1 files changed, 35 insertions, 3 deletions
diff --git a/fs/xfs/libxfs/xfs_inode_buf.h b/fs/xfs/libxfs/xfs_inode_buf.h
index 9308c47f2a52..7c4dd321b215 100644
--- a/fs/xfs/libxfs/xfs_inode_buf.h
+++ b/fs/xfs/libxfs/xfs_inode_buf.h
@@ -20,7 +20,36 @@
20 20
21struct xfs_inode; 21struct xfs_inode;
22struct xfs_dinode; 22struct xfs_dinode;
23struct xfs_icdinode; 23
24/*
25 * In memory representation of the XFS inode. This is held in the in-core struct
26 * xfs_inode and represents the current on disk values but the structure is not
27 * in on-disk format. That is, this structure is always translated to on-disk
28 * format specific structures at the appropriate time.
29 */
30struct xfs_icdinode {
31 __int8_t di_version; /* inode version */
32 __int8_t di_format; /* format of di_c data */
33 __uint16_t di_flushiter; /* incremented on flush */
34 __uint32_t di_uid; /* owner's user id */
35 __uint32_t di_gid; /* owner's group id */
36 __uint16_t di_projid_lo; /* lower part of owner's project id */
37 __uint16_t di_projid_hi; /* higher part of owner's project id */
38 xfs_fsize_t di_size; /* number of bytes in file */
39 xfs_rfsblock_t di_nblocks; /* # of direct & btree blocks used */
40 xfs_extlen_t di_extsize; /* basic/minimum extent size for file */
41 xfs_extnum_t di_nextents; /* number of extents in data fork */
42 xfs_aextnum_t di_anextents; /* number of extents in attribute fork*/
43 __uint8_t di_forkoff; /* attr fork offs, <<3 for 64b align */
44 __int8_t di_aformat; /* format of attr fork's data */
45 __uint32_t di_dmevmask; /* DMIG event mask */
46 __uint16_t di_dmstate; /* DMIG state info */
47 __uint16_t di_flags; /* random flags, XFS_DIFLAG_... */
48
49 __uint64_t di_flags2; /* more random flags */
50
51 xfs_ictimestamp_t di_crtime; /* time created */
52};
24 53
25/* 54/*
26 * Inode location information. Stored in the inode and passed to 55 * Inode location information. Stored in the inode and passed to
@@ -38,8 +67,11 @@ int xfs_imap_to_bp(struct xfs_mount *, struct xfs_trans *,
38int xfs_iread(struct xfs_mount *, struct xfs_trans *, 67int xfs_iread(struct xfs_mount *, struct xfs_trans *,
39 struct xfs_inode *, uint); 68 struct xfs_inode *, uint);
40void xfs_dinode_calc_crc(struct xfs_mount *, struct xfs_dinode *); 69void xfs_dinode_calc_crc(struct xfs_mount *, struct xfs_dinode *);
41void xfs_dinode_to_disk(struct xfs_dinode *to, struct xfs_icdinode *from); 70void xfs_inode_to_disk(struct xfs_inode *ip, struct xfs_dinode *to,
42void xfs_dinode_from_disk(struct xfs_icdinode *to, struct xfs_dinode *from); 71 xfs_lsn_t lsn);
72void xfs_inode_from_disk(struct xfs_inode *ip, struct xfs_dinode *from);
73void xfs_log_dinode_to_disk(struct xfs_log_dinode *from,
74 struct xfs_dinode *to);
43 75
44#if defined(DEBUG) 76#if defined(DEBUG)
45void xfs_inobp_check(struct xfs_mount *, struct xfs_buf *); 77void xfs_inobp_check(struct xfs_mount *, struct xfs_buf *);