diff options
Diffstat (limited to 'fs/efs/super.c')
-rw-r--r-- | fs/efs/super.c | 20 |
1 files changed, 12 insertions, 8 deletions
diff --git a/fs/efs/super.c b/fs/efs/super.c index 73b19cfc91fc..f04942810818 100644 --- a/fs/efs/super.c +++ b/fs/efs/super.c | |||
@@ -329,18 +329,22 @@ out_no_fs: | |||
329 | } | 329 | } |
330 | 330 | ||
331 | static int efs_statfs(struct dentry *dentry, struct kstatfs *buf) { | 331 | static int efs_statfs(struct dentry *dentry, struct kstatfs *buf) { |
332 | struct efs_sb_info *sb = SUPER_INFO(dentry->d_sb); | 332 | struct super_block *sb = dentry->d_sb; |
333 | struct efs_sb_info *sbi = SUPER_INFO(sb); | ||
334 | u64 id = huge_encode_dev(sb->s_bdev->bd_dev); | ||
333 | 335 | ||
334 | buf->f_type = EFS_SUPER_MAGIC; /* efs magic number */ | 336 | buf->f_type = EFS_SUPER_MAGIC; /* efs magic number */ |
335 | buf->f_bsize = EFS_BLOCKSIZE; /* blocksize */ | 337 | buf->f_bsize = EFS_BLOCKSIZE; /* blocksize */ |
336 | buf->f_blocks = sb->total_groups * /* total data blocks */ | 338 | buf->f_blocks = sbi->total_groups * /* total data blocks */ |
337 | (sb->group_size - sb->inode_blocks); | 339 | (sbi->group_size - sbi->inode_blocks); |
338 | buf->f_bfree = sb->data_free; /* free data blocks */ | 340 | buf->f_bfree = sbi->data_free; /* free data blocks */ |
339 | buf->f_bavail = sb->data_free; /* free blocks for non-root */ | 341 | buf->f_bavail = sbi->data_free; /* free blocks for non-root */ |
340 | buf->f_files = sb->total_groups * /* total inodes */ | 342 | buf->f_files = sbi->total_groups * /* total inodes */ |
341 | sb->inode_blocks * | 343 | sbi->inode_blocks * |
342 | (EFS_BLOCKSIZE / sizeof(struct efs_dinode)); | 344 | (EFS_BLOCKSIZE / sizeof(struct efs_dinode)); |
343 | buf->f_ffree = sb->inode_free; /* free inodes */ | 345 | buf->f_ffree = sbi->inode_free; /* free inodes */ |
346 | buf->f_fsid.val[0] = (u32)id; | ||
347 | buf->f_fsid.val[1] = (u32)(id >> 32); | ||
344 | buf->f_namelen = EFS_MAXNAMELEN; /* max filename length */ | 348 | buf->f_namelen = EFS_MAXNAMELEN; /* max filename length */ |
345 | 349 | ||
346 | return 0; | 350 | return 0; |