mirror of
https://github.com/Fishwaldo/linux-bl808.git
synced 2025-06-17 20:25:19 +00:00
xfs: use generic percpu counters for free inode counter
XFS has hand-rolled per-cpu counters for the superblock since before there was any generic implementation. The free inode counter is not used for any limit enforcement - the per-AG free inode counters are used during allocation to determine if there are inode available for allocation. Hence we don't need any of the complexity of the hand-rolled counters and we can simply replace them with generic per-cpu counters similar to the inode counter. This version introduces a xfs_mod_ifree() helper function from Christoph Hellwig. Signed-off-by: Dave Chinner <dchinner@redhat.com> Reviewed-by: Brian Foster <bfoster@redhat.com> Signed-off-by: Dave Chinner <david@fromorbit.com>
This commit is contained in:
parent
501ab32387
commit
e88b64ea1f
6 changed files with 42 additions and 48 deletions
|
@ -560,8 +560,7 @@ xfs_trans_unreserve_and_mod_sb(
|
|||
}
|
||||
|
||||
if (ifreedelta) {
|
||||
error = xfs_icsb_modify_counters(mp, XFS_SBS_IFREE,
|
||||
ifreedelta, rsvd);
|
||||
error = xfs_mod_ifree(mp, ifreedelta);
|
||||
if (error)
|
||||
goto out_undo_icount;
|
||||
}
|
||||
|
@ -630,7 +629,7 @@ xfs_trans_unreserve_and_mod_sb(
|
|||
|
||||
out_undo_ifreecount:
|
||||
if (ifreedelta)
|
||||
xfs_icsb_modify_counters(mp, XFS_SBS_IFREE, -ifreedelta, rsvd);
|
||||
xfs_mod_ifree(mp, -ifreedelta);
|
||||
out_undo_icount:
|
||||
if (idelta)
|
||||
xfs_mod_icount(mp, -idelta);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue