Commit 514c91a9cca12b19ed80ac6728278aff9bbf65f0

Authored by Coly Li
Committed by Linus Torvalds
1 parent 94ea77ac69

fs/efs: return f_fsid for statfs(2)

Make efs return f_fsid info for statfs(2), and do a little variable
renaming in efs_statfs().

Signed-off-by: Coly Li <coly.li@suse.de>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

Showing 1 changed file with 12 additions and 8 deletions Side-by-side Diff

... ... @@ -329,18 +329,22 @@
329 329 }
330 330  
331 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 336 buf->f_type = EFS_SUPER_MAGIC; /* efs magic number */
335 337 buf->f_bsize = EFS_BLOCKSIZE; /* blocksize */
336   - buf->f_blocks = sb->total_groups * /* total data blocks */
337   - (sb->group_size - sb->inode_blocks);
338   - buf->f_bfree = sb->data_free; /* free data blocks */
339   - buf->f_bavail = sb->data_free; /* free blocks for non-root */
340   - buf->f_files = sb->total_groups * /* total inodes */
341   - sb->inode_blocks *
  338 + buf->f_blocks = sbi->total_groups * /* total data blocks */
  339 + (sbi->group_size - sbi->inode_blocks);
  340 + buf->f_bfree = sbi->data_free; /* free data blocks */
  341 + buf->f_bavail = sbi->data_free; /* free blocks for non-root */
  342 + buf->f_files = sbi->total_groups * /* total inodes */
  343 + sbi->inode_blocks *
342 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 348 buf->f_namelen = EFS_MAXNAMELEN; /* max filename length */
345 349  
346 350 return 0;