diff options
author | Christoph Hellwig <hch@infradead.org> | 2007-10-11 04:09:40 -0400 |
---|---|---|
committer | Lachlan McIlroy <lachlan@redback.melbourne.sgi.com> | 2008-02-07 00:53:27 -0500 |
commit | 4ca488eb45692520f745f96abc00ea4e268a87d4 (patch) | |
tree | 525662017ca7cfdc45b9d62f01e045d1da999e4a /fs/xfs/xfs_vfsops.c | |
parent | c43f408795c3210c9f5c925e4a49dbb93d41bb57 (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.c | 53 |
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 | */ | ||
848 | int | ||
849 | xfs_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 |