diff options
| author | Christoph Hellwig <hch@infradead.org> | 2012-07-04 10:54:47 -0400 | 
|---|---|---|
| committer | Ben Myers <bpm@sgi.com> | 2012-07-29 16:00:31 -0500 | 
| commit | 08358906ed78f6ab4d3ff8e4fd1b87b9a4aea645 (patch) | |
| tree | 47884ad2cba2ede418c6f4716c778c9d6ec88e81 /fs/xfs | |
| parent | f2ecc5e453134a13c3b2b0f2cac52ab2d5c540d7 (diff) | |
| download | olio-linux-3.10-08358906ed78f6ab4d3ff8e4fd1b87b9a4aea645.tar.xz olio-linux-3.10-08358906ed78f6ab4d3ff8e4fd1b87b9a4aea645.zip  | |
xfs: remove the alloc_done argument to xfs_dialloc
We can simplify check the IO_agbp pointer for being non-NULL instead of
passing another argument through two layers of function calls.
Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Dave Chinner <dchinner@redhat.com>
Reviewed-by: Mark Tinguely <tinguely@sgi.com>
Signed-off-by: Ben Myers <bpm@sgi.com>
Diffstat (limited to 'fs/xfs')
| -rw-r--r-- | fs/xfs/xfs_ialloc.c | 3 | ||||
| -rw-r--r-- | fs/xfs/xfs_ialloc.h | 2 | ||||
| -rw-r--r-- | fs/xfs/xfs_inode.c | 5 | ||||
| -rw-r--r-- | fs/xfs/xfs_inode.h | 2 | ||||
| -rw-r--r-- | fs/xfs/xfs_utils.c | 17 | 
5 files changed, 10 insertions, 19 deletions
diff --git a/fs/xfs/xfs_ialloc.c b/fs/xfs/xfs_ialloc.c index a124b9f88aa..2b70952c9d8 100644 --- a/fs/xfs/xfs_ialloc.c +++ b/fs/xfs/xfs_ialloc.c @@ -895,7 +895,6 @@ xfs_dialloc(  	umode_t			mode,  	int			okalloc,  	struct xfs_buf		**IO_agbp, -	boolean_t		*alloc_done,  	xfs_ino_t		*inop)  {  	struct xfs_buf		*agbp; @@ -955,7 +954,6 @@ xfs_dialloc(  	 * or in which we can allocate some inodes.  Iterate through the  	 * allocation groups upward, wrapping at the end.  	 */ -	*alloc_done = B_FALSE;  	while (!agi->agi_freecount) {  		/*  		 * Don't do anything if we're not supposed to allocate @@ -982,7 +980,6 @@ xfs_dialloc(  				 * us again where we left off.  				 */  				ASSERT(be32_to_cpu(agi->agi_freecount) > 0); -				*alloc_done = B_TRUE;  				*IO_agbp = agbp;  				*inop = NULLFSINO;  				return 0; diff --git a/fs/xfs/xfs_ialloc.h b/fs/xfs/xfs_ialloc.h index 65ac57c8063..1fd6ea4e9c9 100644 --- a/fs/xfs/xfs_ialloc.h +++ b/fs/xfs/xfs_ialloc.h @@ -75,8 +75,6 @@ xfs_dialloc(  	umode_t		mode,		/* mode bits for new inode */  	int		okalloc,	/* ok to allocate more space */  	struct xfs_buf	**agbp,		/* buf for a.g. inode header */ -	boolean_t	*alloc_done,	/* an allocation was done to replenish -					   the free inodes */  	xfs_ino_t	*inop);		/* inode number allocated */  /* diff --git a/fs/xfs/xfs_inode.c b/fs/xfs/xfs_inode.c index d48e406de07..5c10825f2f8 100644 --- a/fs/xfs/xfs_inode.c +++ b/fs/xfs/xfs_inode.c @@ -887,7 +887,6 @@ xfs_ialloc(  	prid_t		prid,  	int		okalloc,  	xfs_buf_t	**ialloc_context, -	boolean_t	*call_again,  	xfs_inode_t	**ipp)  {  	xfs_ino_t	ino; @@ -902,10 +901,10 @@ xfs_ialloc(  	 * the on-disk inode to be allocated.  	 */  	error = xfs_dialloc(tp, pip ? pip->i_ino : 0, mode, okalloc, -			    ialloc_context, call_again, &ino); +			    ialloc_context, &ino);  	if (error)  		return error; -	if (*call_again || ino == NULLFSINO) { +	if (*ialloc_context || ino == NULLFSINO) {  		*ipp = NULL;  		return 0;  	} diff --git a/fs/xfs/xfs_inode.h b/fs/xfs/xfs_inode.h index c2e2da3abae..04d2fe421b9 100644 --- a/fs/xfs/xfs_inode.h +++ b/fs/xfs/xfs_inode.h @@ -517,7 +517,7 @@ void		xfs_inode_free(struct xfs_inode *ip);   */  int		xfs_ialloc(struct xfs_trans *, xfs_inode_t *, umode_t,  			   xfs_nlink_t, xfs_dev_t, prid_t, int, -			   struct xfs_buf **, boolean_t *, xfs_inode_t **); +			   struct xfs_buf **, xfs_inode_t **);  uint		xfs_ip2xflags(struct xfs_inode *);  uint		xfs_dic2xflags(struct xfs_dinode *); diff --git a/fs/xfs/xfs_utils.c b/fs/xfs/xfs_utils.c index 4e5b9ad5cb9..0025c78ac03 100644 --- a/fs/xfs/xfs_utils.c +++ b/fs/xfs/xfs_utils.c @@ -65,7 +65,6 @@ xfs_dir_ialloc(  	xfs_trans_t	*ntp;  	xfs_inode_t	*ip;  	xfs_buf_t	*ialloc_context = NULL; -	boolean_t	call_again = B_FALSE;  	int		code;  	uint		log_res;  	uint		log_count; @@ -91,7 +90,7 @@ xfs_dir_ialloc(  	 * the inode(s) that we've just allocated.  	 */  	code = xfs_ialloc(tp, dp, mode, nlink, rdev, prid, okalloc, -			  &ialloc_context, &call_again, &ip); +			  &ialloc_context, &ip);  	/*  	 * Return an error if we were unable to allocate a new inode. @@ -102,19 +101,18 @@ xfs_dir_ialloc(  		*ipp = NULL;  		return code;  	} -	if (!call_again && (ip == NULL)) { +	if (!ialloc_context && !ip) {  		*ipp = NULL;  		return XFS_ERROR(ENOSPC);  	}  	/* -	 * If call_again is set, then we were unable to get an +	 * If the AGI buffer is non-NULL, then we were unable to get an  	 * inode in one operation.  We need to commit the current  	 * transaction and call xfs_ialloc() again.  It is guaranteed  	 * to succeed the second time.  	 */ -	if (call_again) { - +	if (ialloc_context) {  		/*  		 * Normally, xfs_trans_commit releases all the locks.  		 * We call bhold to hang on to the ialloc_context across @@ -195,7 +193,7 @@ xfs_dir_ialloc(  		 * this call should always succeed.  		 */  		code = xfs_ialloc(tp, dp, mode, nlink, rdev, prid, -				  okalloc, &ialloc_context, &call_again, &ip); +				  okalloc, &ialloc_context, &ip);  		/*  		 * If we get an error at this point, return to the caller @@ -206,12 +204,11 @@ xfs_dir_ialloc(  			*ipp = NULL;  			return code;  		} -		ASSERT ((!call_again) && (ip != NULL)); +		ASSERT(!ialloc_context && ip);  	} else { -		if (committed != NULL) { +		if (committed != NULL)  			*committed = 0; -		}  	}  	*ipp = ip;  |