diff options
Diffstat (limited to 'fs/xfs/xfs_bmap.h')
| -rw-r--r-- | fs/xfs/xfs_bmap.h | 22 | 
1 files changed, 20 insertions, 2 deletions
diff --git a/fs/xfs/xfs_bmap.h b/fs/xfs/xfs_bmap.h index 8e0d73d9ccc..80e93409b78 100644 --- a/fs/xfs/xfs_bmap.h +++ b/fs/xfs/xfs_bmap.h @@ -1,5 +1,5 @@  /* - * Copyright (c) 2000-2003,2005 Silicon Graphics, Inc. + * Copyright (c) 2000-2006 Silicon Graphics, Inc.   * All Rights Reserved.   *   * This program is free software; you can redistribute it and/or @@ -26,6 +26,20 @@ struct xfs_mount;  struct xfs_trans;  /* + * DELTA: describe a change to the in-core extent list. + * + * Internally the use of xed_blockount is somewhat funky. + * xed_blockcount contains an offset much of the time because this + * makes merging changes easier.  (xfs_fileoff_t and xfs_filblks_t are + * the same underlying type). + */ +typedef struct xfs_extdelta +{ +	xfs_fileoff_t		xed_startoff;	/* offset of range */ +	xfs_filblks_t		xed_blockcount;	/* blocks in range */ +} xfs_extdelta_t; + +/*   * List of extents to be free "later".   * The list is kept sorted on xbf_startblock.   */ @@ -275,7 +289,9 @@ xfs_bmapi(  	xfs_extlen_t		total,		/* total blocks needed */  	struct xfs_bmbt_irec	*mval,		/* output: map values */  	int			*nmap,		/* i/o: mval size/count */ -	xfs_bmap_free_t		*flist);	/* i/o: list extents to free */ +	xfs_bmap_free_t		*flist,		/* i/o: list extents to free */ +	xfs_extdelta_t		*delta);	/* o: change made to incore +						   extents */  /*   * Map file blocks to filesystem blocks, simple version. @@ -309,6 +325,8 @@ xfs_bunmapi(  	xfs_fsblock_t		*firstblock,	/* first allocated block  						   controls a.g. for allocs */  	xfs_bmap_free_t		*flist,		/* i/o: list extents to free */ +	xfs_extdelta_t		*delta,		/* o: change made to incore +						   extents */  	int			*done);		/* set if not done yet */  /*  |