]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - fs/xfs/xfs_attr_leaf.h
[PATCH] nfsd4_truncate() bogus return value
[linux-2.6-omap-h63xx.git] / fs / xfs / xfs_attr_leaf.h
index f6143ff251a019e90ec01673bcf69d8a835d3c1a..541e34109bb9834158d0204ef4763f74211553df 100644 (file)
@@ -63,7 +63,7 @@ struct xfs_trans;
  * the leaf_entry.  The namespaces are independent only because we also look
  * at the namespace bit when we are looking for a matching attribute name.
  *
- * We also store a "incomplete" bit in the leaf_entry.  It shows that an
+ * We also store an "incomplete" bit in the leaf_entry.  It shows that an
  * attribute is in the middle of being created and should not be shown to
  * the user if we crash during the time that the bit is set.  We clear the
  * bit when we have finished setting up the attribute.  We do this because
@@ -72,42 +72,48 @@ struct xfs_trans;
  */
 #define XFS_ATTR_LEAF_MAPSIZE  3       /* how many freespace slots */
 
+typedef struct xfs_attr_leaf_map {     /* RLE map of free bytes */
+       __uint16_t      base;           /* base of free region */
+       __uint16_t      size;           /* length of free region */
+} xfs_attr_leaf_map_t;
+
+typedef struct xfs_attr_leaf_hdr {     /* constant-structure header block */
+       xfs_da_blkinfo_t info;          /* block type, links, etc. */
+       __uint16_t      count;          /* count of active leaf_entry's */
+       __uint16_t      usedbytes;      /* num bytes of names/values stored */
+       __uint16_t      firstused;      /* first used byte in name area */
+       __uint8_t       holes;          /* != 0 if blk needs compaction */
+       __uint8_t       pad1;
+       xfs_attr_leaf_map_t freemap[XFS_ATTR_LEAF_MAPSIZE];
+                                       /* N largest free regions */
+} xfs_attr_leaf_hdr_t;
+
+typedef struct xfs_attr_leaf_entry {   /* sorted on key, not name */
+       xfs_dahash_t    hashval;        /* hash value of name */
+       __uint16_t      nameidx;        /* index into buffer of name/value */
+       __uint8_t       flags;          /* LOCAL/ROOT/SECURE/INCOMPLETE flag */
+       __uint8_t       pad2;           /* unused pad byte */
+} xfs_attr_leaf_entry_t;
+
+typedef struct xfs_attr_leaf_name_local {
+       __uint16_t      valuelen;       /* number of bytes in value */
+       __uint8_t       namelen;        /* length of name bytes */
+       __uint8_t       nameval[1];     /* name/value bytes */
+} xfs_attr_leaf_name_local_t;
+
+typedef struct xfs_attr_leaf_name_remote {
+       xfs_dablk_t     valueblk;       /* block number of value bytes */
+       __uint32_t      valuelen;       /* number of bytes in value */
+       __uint8_t       namelen;        /* length of name bytes */
+       __uint8_t       name[1];        /* name bytes */
+} xfs_attr_leaf_name_remote_t;
+
 typedef struct xfs_attr_leafblock {
-       struct xfs_attr_leaf_hdr {      /* constant-structure header block */
-               xfs_da_blkinfo_t info;  /* block type, links, etc. */
-               __uint16_t count;       /* count of active leaf_entry's */
-               __uint16_t usedbytes;   /* num bytes of names/values stored */
-               __uint16_t firstused;   /* first used byte in name area */
-               __uint8_t  holes;       /* != 0 if blk needs compaction */
-               __uint8_t  pad1;
-               struct xfs_attr_leaf_map {        /* RLE map of free bytes */
-                       __uint16_t base;          /* base of free region */
-                       __uint16_t size;          /* length of free region */
-               } freemap[XFS_ATTR_LEAF_MAPSIZE]; /* N largest free regions */
-       } hdr;
-       struct xfs_attr_leaf_entry {    /* sorted on key, not name */
-               xfs_dahash_t hashval;   /* hash value of name */
-               __uint16_t nameidx;     /* index into buffer of name/value */
-               __uint8_t flags;        /* LOCAL/ROOT/SECURE/INCOMPLETE flag */
-               __uint8_t pad2;         /* unused pad byte */
-       } entries[1];                   /* variable sized array */
-       struct xfs_attr_leaf_name_local {
-               __uint16_t valuelen;    /* number of bytes in value */
-               __uint8_t namelen;      /* length of name bytes */
-               __uint8_t nameval[1];   /* name/value bytes */
-       } namelist;                     /* grows from bottom of buf */
-       struct xfs_attr_leaf_name_remote {
-               xfs_dablk_t valueblk;   /* block number of value bytes */
-               __uint32_t valuelen;    /* number of bytes in value */
-               __uint8_t namelen;      /* length of name bytes */
-               __uint8_t name[1];      /* name bytes */
-       } valuelist;                    /* grows from bottom of buf */
+       xfs_attr_leaf_hdr_t     hdr;    /* constant-structure header block */
+       xfs_attr_leaf_entry_t   entries[1];     /* sorted on key, not name */
+       xfs_attr_leaf_name_local_t namelist;    /* grows from bottom of buf */
+       xfs_attr_leaf_name_remote_t valuelist;  /* grows from bottom of buf */
 } xfs_attr_leafblock_t;
-typedef struct xfs_attr_leaf_hdr xfs_attr_leaf_hdr_t;
-typedef struct xfs_attr_leaf_map xfs_attr_leaf_map_t;
-typedef struct xfs_attr_leaf_entry xfs_attr_leaf_entry_t;
-typedef struct xfs_attr_leaf_name_local xfs_attr_leaf_name_local_t;
-typedef struct xfs_attr_leaf_name_remote xfs_attr_leaf_name_remote_t;
 
 /*
  * Flags used in the leaf_entry[i].flags field.
@@ -150,7 +156,8 @@ xfs_attr_leaf_name_local(xfs_attr_leafblock_t *leafp, int idx)
                (leafp))[INT_GET((leafp)->entries[idx].nameidx, ARCH_CONVERT)];
 }
 
-#define XFS_ATTR_LEAF_NAME(leafp,idx)          xfs_attr_leaf_name(leafp,idx)
+#define XFS_ATTR_LEAF_NAME(leafp,idx)          \
+       xfs_attr_leaf_name(leafp,idx)
 static inline char *xfs_attr_leaf_name(xfs_attr_leafblock_t *leafp, int idx)
 {
        return (&((char *)