[GFS2] Fix sign problem in quota/statfs and cleanup _host structures
[powerpc.git] / fs / gfs2 / incore.h
index b2079fc..e5069b9 100644 (file)
@@ -28,6 +28,14 @@ struct gfs2_sbd;
 
 typedef void (*gfs2_glop_bh_t) (struct gfs2_glock *gl, unsigned int ret);
 
+struct gfs2_log_header_host {
+       u64 lh_sequence;        /* Sequence number of this transaction */
+       u32 lh_flags;           /* GFS2_LOG_HEAD_... */
+       u32 lh_tail;            /* Block number of log tail */
+       u32 lh_blkno;
+       u32 lh_hash;
+};
+
 /*
  * Structure of operations that are associated with each
  * type of element in the log.
@@ -60,12 +68,23 @@ struct gfs2_bitmap {
        u32 bi_len;
 };
 
+struct gfs2_rgrp_host {
+       u32 rg_flags;
+       u32 rg_free;
+       u32 rg_dinodes;
+       u64 rg_igeneration;
+};
+
 struct gfs2_rgrpd {
        struct list_head rd_list;       /* Link with superblock */
        struct list_head rd_list_mru;
        struct list_head rd_recent;     /* Recently used rgrps */
        struct gfs2_glock *rd_gl;       /* Glock for this rgrp */
-       struct gfs2_rindex_host rd_ri;
+       u64 rd_addr;                    /* grp block disk address */
+       u64 rd_data0;                   /* first data location */
+       u32 rd_length;                  /* length of rgrp header in fs blocks */
+       u32 rd_data;                    /* num of data blocks in rgrp */
+       u32 rd_bitbytes;                /* number of bytes in data bitmaps */
        struct gfs2_rgrp_host rd_rg;
        u64 rd_rg_vn;
        struct gfs2_bitmap *rd_bits;
@@ -211,6 +230,20 @@ enum {
        GIF_SW_PAGED            = 3,
 };
 
+struct gfs2_dinode_host {
+       u64 di_size;            /* number of bytes in file */
+       u64 di_blocks;          /* number of blocks in file */
+       u64 di_goal_meta;       /* rgrp to alloc from next */
+       u64 di_goal_data;       /* data block goal */
+       u64 di_generation;      /* generation number for NFS */
+       u32 di_flags;           /* GFS2_DIF_... */
+       u16 di_height;          /* height of metadata */
+       /* These only apply to directories  */
+       u16 di_depth;           /* Number of bits in the table */
+       u32 di_entries;         /* The number of entries in the directory */
+       u64 di_eattr;           /* extended attribute block number */
+};
+
 struct gfs2_inode {
        struct inode i_inode;
        u64 i_no_addr;
@@ -346,6 +379,12 @@ struct gfs2_jdesc {
        unsigned int jd_blocks;
 };
 
+struct gfs2_statfs_change_host {
+       s64 sc_total;
+       s64 sc_free;
+       s64 sc_dinodes;
+};
+
 #define GFS2_GLOCKD_DEFAULT    1
 #define GFS2_GLOCKD_MAX                16
 
@@ -418,6 +457,28 @@ enum {
 
 #define GFS2_FSNAME_LEN                256
 
+struct gfs2_inum_host {
+       u64 no_formal_ino;
+       u64 no_addr;
+};
+
+struct gfs2_sb_host {
+       u32 sb_magic;
+       u32 sb_type;
+       u32 sb_format;
+
+       u32 sb_fs_format;
+       u32 sb_multihost_format;
+       u32 sb_bsize;
+       u32 sb_bsize_shift;
+
+       struct gfs2_inum_host sb_master_dir;
+       struct gfs2_inum_host sb_root_dir;
+
+       char sb_lockproto[GFS2_LOCKNAME_LEN];
+       char sb_locktable[GFS2_LOCKNAME_LEN];
+};
+
 struct gfs2_sbd {
        struct super_block *sd_vfs;
        struct super_block *sd_vfs_meta;