[PATCH 15/25] xfs: pass bmalloca structure to xfs_bmap_isaeof

Alex Elder aelder at sgi.com
Fri Sep 9 18:55:56 CDT 2011


On Wed, 2011-08-24 at 02:04 -0400, Christoph Hellwig wrote:
> All the variables xfs_bmap_isaeof() is passed are contained within
> the xfs_bmalloca structure. Pass that instead.
> 
> Signed-off-by: Dave Chinner <dchinner at redhat.com>

This looks good.

Now that the transaction pointer is available in
xfs_bmap_isaeof(), it gets used in the call to
xfs_bmap_last_extent().  It looks to me like
this means btree block buffers will be added to
and removed from the transaction's item list
in xfs_bmap_read_extents(), and that list will
be scanned for these buffers in xfs_trans_read_buf()
(unlike before).

I don't question whether that's correct, but
is that desirable?  Would we be just as well
off *not* providing the transaction pointer?

Anyway:

Reviewed-by: Alex Elder <aelder at sgi.com>
 
> Index: xfs/fs/xfs/xfs_bmap.c
> ===================================================================
> --- xfs.orig/fs/xfs/xfs_bmap.c	2011-08-23 21:14:33.735424450 +0200
> +++ xfs/fs/xfs/xfs_bmap.c	2011-08-23 21:14:35.358748989 +0200
> @@ -3869,17 +3869,16 @@ xfs_bmap_last_extent(
>   */
>  STATIC int
>  xfs_bmap_isaeof(
> -	struct xfs_inode	*ip,
> -	xfs_fileoff_t		off,
> -	int			whichfork,
> -	char			*aeof)
> +	struct xfs_bmalloca	*bma,
> +	int			whichfork)
>  {
>  	struct xfs_bmbt_irec	rec;
>  	int			is_empty;
>  	int			error;
>  
> -	*aeof = 0;
> -	error = xfs_bmap_last_extent(NULL, ip, whichfork, &rec, &is_empty);
> +	bma->aeof = 0;
> +	error = xfs_bmap_last_extent(bma->tp, bma->ip, whichfork, &rec,
> +				     &is_empty);

Here is the spot I'm referring to.

>  	if (error || is_empty)
>  		return error;
>  





More information about the xfs mailing list