This patch makes jfs return f_fsid info for statfs(2).
Signed-off-by: Coly Li <[email protected]>
Cc: Dave Kleikamp <[email protected]>
---
fs/jfs/super.c | 6 +++++-
1 files changed, 5 insertions(+), 1 deletions(-)
diff --git a/fs/jfs/super.c b/fs/jfs/super.c
index b37d1f7..7969c2f 100644
--- a/fs/jfs/super.c
+++ b/fs/jfs/super.c
@@ -143,8 +143,10 @@ static void jfs_destroy_inode(struct inode *inode)
static int jfs_statfs(struct dentry *dentry, struct kstatfs *buf)
{
- struct jfs_sb_info *sbi = JFS_SBI(dentry->d_sb);
+ struct super_block *sb = dentry->d_sb;
+ struct jfs_sb_info *sbi = JFS_SBI(sb);
s64 maxinodes;
+ u64 id = huge_encode_dev(sb->s_bdev->bd_dev);
struct inomap *imap = JFS_IP(sbi->ipimap)->i_imap;
jfs_info("In jfs_statfs");
@@ -168,6 +170,8 @@ static int jfs_statfs(struct dentry *dentry, struct kstatfs *buf)
buf->f_files = maxinodes;
buf->f_ffree = maxinodes - (atomic_read(&imap->im_numinos) -
atomic_read(&imap->im_numfree));
+ buf->f_fsid.val[0] = (u32)id;
+ buf->f_fsid.val[1] = (u32)(id >> 32);
buf->f_namelen = JFS_NAME_MAX;
return 0;
--
Coly Li
SuSE Labs
On Tue, 2009-01-20 at 01:34 +0800, Coly Li wrote:
> This patch makes jfs return f_fsid info for statfs(2).
>
> Signed-off-by: Coly Li <[email protected]>
Acked-by: Dave Kleikamp <[email protected]>
> ---
> fs/jfs/super.c | 6 +++++-
> 1 files changed, 5 insertions(+), 1 deletions(-)
>
> diff --git a/fs/jfs/super.c b/fs/jfs/super.c
> index b37d1f7..7969c2f 100644
> --- a/fs/jfs/super.c
> +++ b/fs/jfs/super.c
> @@ -143,8 +143,10 @@ static void jfs_destroy_inode(struct inode *inode)
>
> static int jfs_statfs(struct dentry *dentry, struct kstatfs *buf)
> {
> - struct jfs_sb_info *sbi = JFS_SBI(dentry->d_sb);
> + struct super_block *sb = dentry->d_sb;
> + struct jfs_sb_info *sbi = JFS_SBI(sb);
> s64 maxinodes;
> + u64 id = huge_encode_dev(sb->s_bdev->bd_dev);
> struct inomap *imap = JFS_IP(sbi->ipimap)->i_imap;
>
> jfs_info("In jfs_statfs");
> @@ -168,6 +170,8 @@ static int jfs_statfs(struct dentry *dentry, struct kstatfs *buf)
> buf->f_files = maxinodes;
> buf->f_ffree = maxinodes - (atomic_read(&imap->im_numinos) -
> atomic_read(&imap->im_numfree));
> + buf->f_fsid.val[0] = (u32)id;
> + buf->f_fsid.val[1] = (u32)(id >> 32);
>
> buf->f_namelen = JFS_NAME_MAX;
> return 0;
>
--
David Kleikamp
IBM Linux Technology Center