summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavid Chinner2008-04-29 04:53:15 +0200
committerLachlan McIlroy2008-04-29 07:58:27 +0200
commitd349404ff14758dc9a2d3df032073ed795085860 (patch)
treee4ce7fef82c8f7a30b53a3dc40b35df6428fb1e3
parent[XFS] remove xfs_log_ticket_zone on rmmod (diff)
downloadkernel-qcow2-linux-d349404ff14758dc9a2d3df032073ed795085860.tar.gz
kernel-qcow2-linux-d349404ff14758dc9a2d3df032073ed795085860.tar.xz
kernel-qcow2-linux-d349404ff14758dc9a2d3df032073ed795085860.zip
[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>
-rw-r--r--fs/xfs/xfs_fsops.c4
1 files changed, 0 insertions, 4 deletions
diff --git a/fs/xfs/xfs_fsops.c b/fs/xfs/xfs_fsops.c
index 5d5e9b34dd02..381ebda4f7bc 100644
--- a/fs/xfs/xfs_fsops.c
+++ b/fs/xfs/xfs_fsops.c
@@ -552,11 +552,8 @@ retry:
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 @@ out:
if (error == ENOSPC)
goto retry;
}
-
return 0;
}