diff options
Diffstat (limited to 'fs/xfs/xfs_itable.c')
| -rw-r--r-- | fs/xfs/xfs_itable.c | 14 | 
1 files changed, 7 insertions, 7 deletions
diff --git a/fs/xfs/xfs_itable.c b/fs/xfs/xfs_itable.c index 62efab2f3839..b1b801e4a28e 100644 --- a/fs/xfs/xfs_itable.c +++ b/fs/xfs/xfs_itable.c @@ -106,6 +106,7 @@ xfs_bulkstat_one_iget(  	buf->bs_dmevmask = dic->di_dmevmask;  	buf->bs_dmstate = dic->di_dmstate;  	buf->bs_aextents = dic->di_anextents; +	buf->bs_forkoff = XFS_IFORK_BOFF(ip);  	switch (dic->di_format) {  	case XFS_DINODE_FMT_DEV: @@ -176,6 +177,7 @@ xfs_bulkstat_one_dinode(  	buf->bs_dmevmask = be32_to_cpu(dic->di_dmevmask);  	buf->bs_dmstate = be16_to_cpu(dic->di_dmstate);  	buf->bs_aextents = be16_to_cpu(dic->di_anextents); +	buf->bs_forkoff = XFS_DFORK_BOFF(dic);  	switch (dic->di_format) {  	case XFS_DINODE_FMT_DEV: @@ -408,8 +410,10 @@ xfs_bulkstat(  		(XFS_INODE_CLUSTER_SIZE(mp) >> mp->m_sb.sb_inodelog);  	nimask = ~(nicluster - 1);  	nbcluster = nicluster >> mp->m_sb.sb_inopblog; -	irbuf = kmem_zalloc_greedy(&irbsize, PAGE_SIZE, PAGE_SIZE * 4, -				   KM_SLEEP | KM_MAYFAIL | KM_LARGE); +	irbuf = kmem_zalloc_greedy(&irbsize, PAGE_SIZE, PAGE_SIZE * 4); +	if (!irbuf) +		return ENOMEM; +  	nirbuf = irbsize / sizeof(*irbuf);  	/* @@ -420,9 +424,7 @@ xfs_bulkstat(  	while (XFS_BULKSTAT_UBLEFT(ubleft) && agno < mp->m_sb.sb_agcount) {  		cond_resched();  		bp = NULL; -		down_read(&mp->m_peraglock);  		error = xfs_ialloc_read_agi(mp, NULL, agno, &agbp); -		up_read(&mp->m_peraglock);  		if (error) {  			/*  			 * Skip this allocation group and go to the next one. @@ -729,7 +731,7 @@ xfs_bulkstat(  	/*  	 * Done, we're either out of filesystem or space to put the data.  	 */ -	kmem_free(irbuf); +	kmem_free_large(irbuf);  	*ubcountp = ubelem;  	/*  	 * Found some inodes, return them now and return the error next time. @@ -849,9 +851,7 @@ xfs_inumbers(  	agbp = NULL;  	while (left > 0 && agno < mp->m_sb.sb_agcount) {  		if (agbp == NULL) { -			down_read(&mp->m_peraglock);  			error = xfs_ialloc_read_agi(mp, NULL, agno, &agbp); -			up_read(&mp->m_peraglock);  			if (error) {  				/*  				 * If we can't read the AGI of this ag,  |