diff options
Diffstat (limited to 'fs/xfs/libxfs/xfs_bmap_btree.c')
| -rw-r--r-- | fs/xfs/libxfs/xfs_bmap_btree.c | 7 | 
1 files changed, 5 insertions, 2 deletions
diff --git a/fs/xfs/libxfs/xfs_bmap_btree.c b/fs/xfs/libxfs/xfs_bmap_btree.c index 1b40e5f8b1ec..36564ae3084f 100644 --- a/fs/xfs/libxfs/xfs_bmap_btree.c +++ b/fs/xfs/libxfs/xfs_bmap_btree.c @@ -268,11 +268,14 @@ xfs_bmbt_free_block(  	struct xfs_trans	*tp = cur->bc_tp;  	xfs_fsblock_t		fsbno = XFS_DADDR_TO_FSB(mp, xfs_buf_daddr(bp));  	struct xfs_owner_info	oinfo; +	int			error;  	xfs_rmap_ino_bmbt_owner(&oinfo, ip->i_ino, cur->bc_ino.whichfork); -	xfs_free_extent_later(cur->bc_tp, fsbno, 1, &oinfo); -	ip->i_nblocks--; +	error = xfs_free_extent_later(cur->bc_tp, fsbno, 1, &oinfo); +	if (error) +		return error; +	ip->i_nblocks--;  	xfs_trans_log_inode(tp, ip, XFS_ILOG_CORE);  	xfs_trans_mod_dquot_byino(tp, ip, XFS_TRANS_DQ_BCOUNT, -1L);  	return 0;  |