summaryrefslogtreecommitdiffstats
path: root/cpukit/libfs/src/rfs/rtems-rfs-rtems.c
diff options
context:
space:
mode:
authorChris Johns <chrisj@rtems.org>2010-02-22 23:02:41 +0000
committerChris Johns <chrisj@rtems.org>2010-02-22 23:02:41 +0000
commit59762963b2c74d67b5db42ad7589e69b706af067 (patch)
tree57e0c1407d5fd2894f641365d5610a56ec38bd2f /cpukit/libfs/src/rfs/rtems-rfs-rtems.c
parent2010-02-20 Chris Johns <chrisj@rtems.org> (diff)
downloadrtems-59762963b2c74d67b5db42ad7589e69b706af067.tar.bz2
2010-02-23 Chris Johns <chrisj@rtems.org>
* libfs/src/rfs/rtems-rfs-dir.c: Fix printf format warning for a 64bit off_t. * libfs/src/rfs/rtems-rfs-file-system.h: Add a macro to get the file system flags. * libfs/src/rfs/rtems-rfs-group.c, libfs/src/rfs/rtems-rfs-group.h: Add rtems_rfs_group_usage. * libfs/src/rfs/rtems-rfs-rtems.c: Fill in all the fields in the statvfs struct. * libfs/src/rfs/rtems-rfs-shell.c: Use rtems_rfs_group_usage.
Diffstat (limited to 'cpukit/libfs/src/rfs/rtems-rfs-rtems.c')
-rw-r--r--cpukit/libfs/src/rfs/rtems-rfs-rtems.c19
1 files changed, 14 insertions, 5 deletions
diff --git a/cpukit/libfs/src/rfs/rtems-rfs-rtems.c b/cpukit/libfs/src/rfs/rtems-rfs-rtems.c
index 60f3fdf429..4c0f8d5ff9 100644
--- a/cpukit/libfs/src/rfs/rtems-rfs-rtems.c
+++ b/cpukit/libfs/src/rfs/rtems-rfs-rtems.c
@@ -1101,12 +1101,21 @@ rtems_rfs_rtems_statvfs (rtems_filesystem_location_info_t* pathloc,
struct statvfs* sb)
{
rtems_rfs_file_system* fs = rtems_rfs_rtems_pathloc_dev (pathloc);
+ size_t blocks;
+ size_t inodes;
- sb->f_bsize = rtems_rfs_fs_block_size (fs);
- sb->f_frsize = rtems_rfs_fs_media_block_size (fs);
- sb->f_blocks = rtems_rfs_fs_media_blocks (fs);
-
- sb->f_fsid = RTEMS_RFS_SB_MAGIC;
+ rtems_rfs_group_usage (fs, &blocks, &inodes);
+
+ sb->f_bsize = rtems_rfs_fs_block_size (fs);
+ sb->f_frsize = rtems_rfs_fs_media_block_size (fs);
+ sb->f_blocks = rtems_rfs_fs_media_blocks (fs);
+ sb->f_bfree = rtems_rfs_fs_blocks (fs) - blocks;
+ sb->f_bavail = sb->f_bfree;
+ sb->f_files = rtems_rfs_fs_inodes (fs) - inodes;
+ sb->f_ffree = sb->f_files;
+ sb->f_favail = sb->f_files;
+ sb->f_fsid = RTEMS_RFS_SB_MAGIC;
+ sb->f_flag = rtems_rfs_fs_flags (fs);
sb->f_namemax = rtems_rfs_fs_max_name (fs);
return 0;