xfs: improve xfs_inobt_update prototype
Both callers of xfs_inobt_update have the record in form of a xfs_inobt_rec_incore_t, so just pass a pointer to it instead of the individual variables. Signed-off-by: Christoph Hellwig <hch@lst.de> Reviewed-by: Alex Elder <aelder@sgi.com> Signed-off-by: Felix Blyakher <felixb@sgi.com>
This commit is contained in:
parent
2e287a731e
commit
afabc24a73
|
@ -110,22 +110,19 @@ xfs_inobt_lookup_le(
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Update the record referred to by cur to the value given
|
* Update the record referred to by cur to the value given.
|
||||||
* by [ino, fcnt, free].
|
|
||||||
* This either works (return 0) or gets an EFSCORRUPTED error.
|
* This either works (return 0) or gets an EFSCORRUPTED error.
|
||||||
*/
|
*/
|
||||||
STATIC int /* error */
|
STATIC int /* error */
|
||||||
xfs_inobt_update(
|
xfs_inobt_update(
|
||||||
struct xfs_btree_cur *cur, /* btree cursor */
|
struct xfs_btree_cur *cur, /* btree cursor */
|
||||||
xfs_agino_t ino, /* starting inode of chunk */
|
xfs_inobt_rec_incore_t *irec) /* btree record */
|
||||||
__int32_t fcnt, /* free inode count */
|
|
||||||
xfs_inofree_t free) /* free inode mask */
|
|
||||||
{
|
{
|
||||||
union xfs_btree_rec rec;
|
union xfs_btree_rec rec;
|
||||||
|
|
||||||
rec.inobt.ir_startino = cpu_to_be32(ino);
|
rec.inobt.ir_startino = cpu_to_be32(irec->ir_startino);
|
||||||
rec.inobt.ir_freecount = cpu_to_be32(fcnt);
|
rec.inobt.ir_freecount = cpu_to_be32(irec->ir_freecount);
|
||||||
rec.inobt.ir_free = cpu_to_be64(free);
|
rec.inobt.ir_free = cpu_to_be64(irec->ir_free);
|
||||||
return xfs_btree_update(cur, &rec);
|
return xfs_btree_update(cur, &rec);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -946,8 +943,8 @@ xfs_dialloc(
|
||||||
ino = XFS_AGINO_TO_INO(mp, agno, rec.ir_startino + offset);
|
ino = XFS_AGINO_TO_INO(mp, agno, rec.ir_startino + offset);
|
||||||
rec.ir_free &= ~XFS_INOBT_MASK(offset);
|
rec.ir_free &= ~XFS_INOBT_MASK(offset);
|
||||||
rec.ir_freecount--;
|
rec.ir_freecount--;
|
||||||
if ((error = xfs_inobt_update(cur, rec.ir_startino, rec.ir_freecount,
|
error = xfs_inobt_update(cur, &rec);
|
||||||
rec.ir_free)))
|
if (error)
|
||||||
goto error0;
|
goto error0;
|
||||||
be32_add_cpu(&agi->agi_freecount, -1);
|
be32_add_cpu(&agi->agi_freecount, -1);
|
||||||
xfs_ialloc_log_agi(tp, agbp, XFS_AGI_FREECOUNT);
|
xfs_ialloc_log_agi(tp, agbp, XFS_AGI_FREECOUNT);
|
||||||
|
@ -1149,12 +1146,14 @@ xfs_difree(
|
||||||
} else {
|
} else {
|
||||||
*delete = 0;
|
*delete = 0;
|
||||||
|
|
||||||
if ((error = xfs_inobt_update(cur, rec.ir_startino, rec.ir_freecount, rec.ir_free))) {
|
error = xfs_inobt_update(cur, &rec);
|
||||||
|
if (error) {
|
||||||
cmn_err(CE_WARN,
|
cmn_err(CE_WARN,
|
||||||
"xfs_difree: xfs_inobt_update() returned an error %d on %s. Returning error.",
|
"xfs_difree: xfs_inobt_update returned an error %d on %s.",
|
||||||
error, mp->m_fsname);
|
error, mp->m_fsname);
|
||||||
goto error0;
|
goto error0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Change the inode free counts and log the ag/sb changes.
|
* Change the inode free counts and log the ag/sb changes.
|
||||||
*/
|
*/
|
||||||
|
|
Loading…
Reference in New Issue