aboutsummaryrefslogtreecommitdiffstats
path: root/fs/xfs/xfs_attr_leaf.h
diff options
context:
space:
mode:
authorNathan Scott <nathans@sgi.com>2005-11-01 18:34:53 -0500
committerNathan Scott <nathans@sgi.com>2005-11-01 18:34:53 -0500
commitd8cc890d4095f1eaa7f411a85051015b21262b12 (patch)
treee13bec06a94a8dc5552dab733e90ef4f4d41fb8b /fs/xfs/xfs_attr_leaf.h
parentaa82daa06198b27963fe3d6ee8035855b29f6524 (diff)
[XFS] Ondisk format extension for extended attributes (attr2). Basically,
the data/attr forks now grow up/down from either end of the literal area, rather than dividing the literal area into two chunks and growing both upward. Means we can now make much more efficient use of the attribute space, incl. fitting DMF attributes inline in 256 byte inodes, and large jumps in dbench3 performance numbers. It is self enabling, but can be forced on/off via the attr2/noattr2 mount options. SGI-PV: 941645 SGI-Modid: xfs-linux:xfs-kern:23835a Signed-off-by: Nathan Scott <nathans@sgi.com>
Diffstat (limited to 'fs/xfs/xfs_attr_leaf.h')
-rw-r--r--fs/xfs/xfs_attr_leaf.h14
1 files changed, 8 insertions, 6 deletions
diff --git a/fs/xfs/xfs_attr_leaf.h b/fs/xfs/xfs_attr_leaf.h
index b99f0491061c..326802f80d54 100644
--- a/fs/xfs/xfs_attr_leaf.h
+++ b/fs/xfs/xfs_attr_leaf.h
@@ -238,23 +238,25 @@ typedef struct xfs_attr_inactive_list {
238 *========================================================================*/ 238 *========================================================================*/
239 239
240/* 240/*
241 * Internal routines when dirsize < XFS_LITINO(mp). 241 * Internal routines when attribute fork size < XFS_LITINO(mp).
242 */ 242 */
243int xfs_attr_shortform_create(struct xfs_da_args *args); 243void xfs_attr_shortform_create(struct xfs_da_args *args);
244int xfs_attr_shortform_add(struct xfs_da_args *add); 244void xfs_attr_shortform_add(struct xfs_da_args *args, int forkoff);
245int xfs_attr_shortform_lookup(struct xfs_da_args *args); 245int xfs_attr_shortform_lookup(struct xfs_da_args *args);
246int xfs_attr_shortform_getvalue(struct xfs_da_args *args); 246int xfs_attr_shortform_getvalue(struct xfs_da_args *args);
247int xfs_attr_shortform_to_leaf(struct xfs_da_args *args); 247int xfs_attr_shortform_to_leaf(struct xfs_da_args *args);
248int xfs_attr_shortform_remove(struct xfs_da_args *remove); 248int xfs_attr_shortform_remove(struct xfs_da_args *args);
249int xfs_attr_shortform_list(struct xfs_attr_list_context *context); 249int xfs_attr_shortform_list(struct xfs_attr_list_context *context);
250int xfs_attr_shortform_allfit(struct xfs_dabuf *bp, struct xfs_inode *dp); 250int xfs_attr_shortform_allfit(struct xfs_dabuf *bp, struct xfs_inode *dp);
251int xfs_attr_shortform_bytesfit(xfs_inode_t *dp, int bytes);
252
251 253
252/* 254/*
253 * Internal routines when dirsize == XFS_LBSIZE(mp). 255 * Internal routines when attribute fork size == XFS_LBSIZE(mp).
254 */ 256 */
255int xfs_attr_leaf_to_node(struct xfs_da_args *args); 257int xfs_attr_leaf_to_node(struct xfs_da_args *args);
256int xfs_attr_leaf_to_shortform(struct xfs_dabuf *bp, 258int xfs_attr_leaf_to_shortform(struct xfs_dabuf *bp,
257 struct xfs_da_args *args); 259 struct xfs_da_args *args, int forkoff);
258int xfs_attr_leaf_clearflag(struct xfs_da_args *args); 260int xfs_attr_leaf_clearflag(struct xfs_da_args *args);
259int xfs_attr_leaf_setflag(struct xfs_da_args *args); 261int xfs_attr_leaf_setflag(struct xfs_da_args *args);
260int xfs_attr_leaf_flipflags(xfs_da_args_t *args); 262int xfs_attr_leaf_flipflags(xfs_da_args_t *args);