mirror of https://gitee.com/openkylin/linux.git
[XFS] Don't double count reserved block changes on UP.
On uniprocessor machines, the incore superblock is used for all in memory accounting of free blocks. in this situation, changes to the reserved block count are accounted twice; once directly and once via xfs_mod_incore_sb(). Seeing as the modification on SMP is done via xfs_mod_incore_sb(), make this the only update mechanism that UP uses as well. SGI-PV: 980654 SGI-Modid: xfs-linux-melb:xfs-kern:30997a Signed-off-by: David Chinner <dgc@sgi.com> Signed-off-by: Lachlan McIlroy <lachlan@sgi.com>
This commit is contained in:
parent
fe0754f0e5
commit
d349404ff1
|
@ -552,11 +552,8 @@ xfs_reserve_blocks(
|
|||
mp->m_resblks += free;
|
||||
mp->m_resblks_avail += free;
|
||||
fdblks_delta = -free;
|
||||
mp->m_sb.sb_fdblocks = XFS_ALLOC_SET_ASIDE(mp);
|
||||
} else {
|
||||
fdblks_delta = -delta;
|
||||
mp->m_sb.sb_fdblocks =
|
||||
lcounter + XFS_ALLOC_SET_ASIDE(mp);
|
||||
mp->m_resblks = request;
|
||||
mp->m_resblks_avail += delta;
|
||||
}
|
||||
|
@ -587,7 +584,6 @@ xfs_reserve_blocks(
|
|||
if (error == ENOSPC)
|
||||
goto retry;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue