aboutsummaryrefslogtreecommitdiffstats
path: root/fs/xfs/xfs_vfsops.c
diff options
context:
space:
mode:
authorChristoph Hellwig <hch@infradead.org>2007-10-11 04:09:40 -0400
committerLachlan McIlroy <lachlan@redback.melbourne.sgi.com>2008-02-07 00:53:27 -0500
commit4ca488eb45692520f745f96abc00ea4e268a87d4 (patch)
tree525662017ca7cfdc45b9d62f01e045d1da999e4a /fs/xfs/xfs_vfsops.c
parentc43f408795c3210c9f5c925e4a49dbb93d41bb57 (diff)
[XFS] Kill off xfs_statvfs.
We were already filling the Linux struct statfs anyway, and doing this trivial task directly in xfs_fs_statfs makes the code quite a bit cleaner. While I was at it I also moved copying attributes that don't change over the lifetime of the filesystem outside the superblock lock. xfs_fs_fill_super used to get the magic number and blocksize through xfs_statvfs, but assigning them directly is a lot cleaner and will save some stack space during mount. SGI-PV: 971186 SGI-Modid: xfs-linux-melb:xfs-kern:29802a Signed-off-by: Christoph Hellwig <hch@infradead.org> Signed-off-by: Tim Shimmin <tes@sgi.com>
Diffstat (limited to 'fs/xfs/xfs_vfsops.c')
-rw-r--r--fs/xfs/xfs_vfsops.c53
1 files changed, 0 insertions, 53 deletions
diff --git a/fs/xfs/xfs_vfsops.c b/fs/xfs/xfs_vfsops.c
index f5844678d45e..1249548aa12e 100644
--- a/fs/xfs/xfs_vfsops.c
+++ b/fs/xfs/xfs_vfsops.c
@@ -839,59 +839,6 @@ xfs_root(
839} 839}
840 840
841/* 841/*
842 * xfs_statvfs
843 *
844 * Fill in the statvfs structure for the given file system. We use
845 * the superblock lock in the mount structure to ensure a consistent
846 * snapshot of the counters returned.
847 */
848int
849xfs_statvfs(
850 xfs_mount_t *mp,
851 bhv_statvfs_t *statp,
852 bhv_vnode_t *vp)
853{
854 __uint64_t fakeinos;
855 xfs_extlen_t lsize;
856 xfs_sb_t *sbp;
857
858 sbp = &(mp->m_sb);
859
860 statp->f_type = XFS_SB_MAGIC;
861
862 xfs_icsb_sync_counters_flags(mp, XFS_ICSB_LAZY_COUNT);
863 spin_lock(&mp->m_sb_lock);
864 statp->f_bsize = sbp->sb_blocksize;
865 lsize = sbp->sb_logstart ? sbp->sb_logblocks : 0;
866 statp->f_blocks = sbp->sb_dblocks - lsize;
867 statp->f_bfree = statp->f_bavail =
868 sbp->sb_fdblocks - XFS_ALLOC_SET_ASIDE(mp);
869 fakeinos = statp->f_bfree << sbp->sb_inopblog;
870#if XFS_BIG_INUMS
871 fakeinos += mp->m_inoadd;
872#endif
873 statp->f_files =
874 MIN(sbp->sb_icount + fakeinos, (__uint64_t)XFS_MAXINUMBER);
875 if (mp->m_maxicount)
876#if XFS_BIG_INUMS
877 if (!mp->m_inoadd)
878#endif
879 statp->f_files = min_t(typeof(statp->f_files),
880 statp->f_files,
881 mp->m_maxicount);
882 statp->f_ffree = statp->f_files - (sbp->sb_icount - sbp->sb_ifree);
883 spin_unlock(&mp->m_sb_lock);
884
885 xfs_statvfs_fsid(statp, mp);
886 statp->f_namelen = MAXNAMELEN - 1;
887
888 if (vp)
889 XFS_QM_DQSTATVFS(xfs_vtoi(vp), statp);
890 return 0;
891}
892
893
894/*
895 * xfs_sync flushes any pending I/O to file system vfsp. 842 * xfs_sync flushes any pending I/O to file system vfsp.
896 * 843 *
897 * This routine is called by vfs_sync() to make sure that things make it 844 * This routine is called by vfs_sync() to make sure that things make it