From 5565e205ac2ea102f77d3b663a7afbba7b78cfe4 Mon Sep 17 00:00:00 2001 From: Coly Li Date: Thu, 2 Apr 2009 16:59:34 -0700 Subject: [PATCH] --- yaml --- r: 139757 b: refs/heads/master c: 514c91a9cca12b19ed80ac6728278aff9bbf65f0 h: refs/heads/master i: 139755: d3a5c2ea6e64408f0904a1ae76330d859a1230fd v: v3 --- [refs] | 2 +- trunk/fs/efs/super.c | 20 ++++++++++++-------- 2 files changed, 13 insertions(+), 9 deletions(-) diff --git a/[refs] b/[refs] index 0c5f018ddfa4..7d401bb12e5a 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 94ea77ac696d76522ad32a51e84a969f83284eda +refs/heads/master: 514c91a9cca12b19ed80ac6728278aff9bbf65f0 diff --git a/trunk/fs/efs/super.c b/trunk/fs/efs/super.c index 73b19cfc91fc..f04942810818 100644 --- a/trunk/fs/efs/super.c +++ b/trunk/fs/efs/super.c @@ -329,18 +329,22 @@ static int efs_fill_super(struct super_block *s, void *d, int silent) } static int efs_statfs(struct dentry *dentry, struct kstatfs *buf) { - struct efs_sb_info *sb = SUPER_INFO(dentry->d_sb); + struct super_block *sb = dentry->d_sb; + struct efs_sb_info *sbi = SUPER_INFO(sb); + u64 id = huge_encode_dev(sb->s_bdev->bd_dev); buf->f_type = EFS_SUPER_MAGIC; /* efs magic number */ buf->f_bsize = EFS_BLOCKSIZE; /* blocksize */ - buf->f_blocks = sb->total_groups * /* total data blocks */ - (sb->group_size - sb->inode_blocks); - buf->f_bfree = sb->data_free; /* free data blocks */ - buf->f_bavail = sb->data_free; /* free blocks for non-root */ - buf->f_files = sb->total_groups * /* total inodes */ - sb->inode_blocks * + buf->f_blocks = sbi->total_groups * /* total data blocks */ + (sbi->group_size - sbi->inode_blocks); + buf->f_bfree = sbi->data_free; /* free data blocks */ + buf->f_bavail = sbi->data_free; /* free blocks for non-root */ + buf->f_files = sbi->total_groups * /* total inodes */ + sbi->inode_blocks * (EFS_BLOCKSIZE / sizeof(struct efs_dinode)); - buf->f_ffree = sb->inode_free; /* free inodes */ + buf->f_ffree = sbi->inode_free; /* free inodes */ + buf->f_fsid.val[0] = (u32)id; + buf->f_fsid.val[1] = (u32)(id >> 32); buf->f_namelen = EFS_MAXNAMELEN; /* max filename length */ return 0;